home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / ien / ien-183 < prev    next >
Text File  |  1988-12-01  |  92KB  |  3,306 lines

  1. IEN-183
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                        Logical Addressing
  25.  
  26.                   Bolt Beranek and Newman Inc.
  27.  
  28.                           Eric C. Rosen
  29.  
  30.                             May 1981
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. IEN-183                              Bolt Beranek and Newman Inc.
  60.                                                     Eric C. Rosen
  61.  
  62.  
  63.  
  64.                         Table of Contents
  65.  
  66.  
  67.  
  68.  
  69. 1   Introduction.......................................... 1
  70. 2   Translating Logical to Physical Addresses............. 7
  71. 2.1   Translation Locus................................... 7
  72. 2.2   Translation Methodology............................ 10
  73. 3   Organizing the Translation Tables.................... 17
  74. 4   Initializing the Translation Tables.................. 23
  75. 5   Updating the Translation Tables...................... 30
  76. 6   Operational and Implementation Considerations........ 49
  77. 7   Network Access Protocol Implications................. 53
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.                                -i-
  114.  
  115.  
  116. IEN-183                              Bolt Beranek and Newman Inc.
  117.                                                     Eric C. Rosen
  118.  
  119.  
  120.  
  121. 1  Introduction
  122.  
  123.  
  124.         This paper is a slightly modified extract from BBN Report
  125.  
  126. No.  4473,  "ARPANET Routing Algorithm Improvement, Volume 1," by
  127.  
  128. Rosen, et al.  It proposes  a  scheme  for  implementing  logical
  129.  
  130. addressing  in  the  ARPANET.  However, the issues dealt with are
  131.  
  132. quite similar to the issues raised by the problem of implementing
  133.  
  134. logical  addressing in the Catenet (several IENs are currently in
  135.  
  136. preparation in which  we  argued  for  this  assertion  at  great
  137.  
  138. length.)   It is hoped, therefore, that the discussion will be of
  139.  
  140. interest to internet workers as well.
  141.  
  142.  
  143.         In the current ARPANET, in order for a user  to  transmit
  144.  
  145. data  to  a particular host, he must know the PHYSICAL ADDRESS of
  146.  
  147. the host.  That is, he must know which node the host is connected
  148.  
  149. to,  and  he must know which port on that node is used to connect
  150.  
  151. that host.  Furthermore, this is the ONLY means  a  user  has  of
  152.  
  153. identifying  a host.  In many respects, the physical address of a
  154.  
  155. host computer can be compared to  a  person's  telephone  number.
  156.  
  157. The  problems  inherent  to  physical  addressing  in  a computer
  158.  
  159. network are similar to those  we  would  experience  in  ordinary
  160.  
  161. interpersonal  communication  if a person's telephone number were
  162.  
  163. the only means we had of identifying him.  Dialing  a  particular
  164.  
  165. telephone  number allows us to establish a communications channel
  166.  
  167. to a particular location.  This works well as long as the  person
  168.  
  169.  
  170.  
  171.                                -1-
  172.  
  173.  
  174. IEN-183                              Bolt Beranek and Newman Inc.
  175.                                                     Eric C. Rosen
  176.  
  177.  
  178.  
  179. with  whom  we  wish  to  communicate  remains at that particular
  180.  
  181. location.  When the person  changes  his  location,  though,  the
  182.  
  183. phone  number becomes virtually useless, and the physical address
  184.  
  185. of a host computer becomes  equally  useless  if  the  computer's
  186.  
  187. location   within   the  network  changes.   In  the  context  of
  188.  
  189. interpersonal communication, this gives rise to the calling of  a
  190.  
  191. "wrong  number".  In the context of computer networking, this can
  192.  
  193. give rise to the more serious phenomenon of mis-delivery of data.
  194.  
  195. Furthermore,  when  a computer changes location within a network,
  196.  
  197. it is quite difficult to carry out  a  procedure  which  reliably
  198.  
  199. informs  all  users  of  its  new  physical  address.   There are
  200.  
  201. difficulties in identifying all users, difficulties in contacting
  202.  
  203. them  once  they are identified, difficulties in making sure that
  204.  
  205. the information receives  the  proper  level  of  attention  once
  206.  
  207. contact  is  made, and if all these difficulties are resolved, it
  208.  
  209. is still difficult to make  the  necessary  changes  to  computer
  210.  
  211. software  so  that  the new physical address is actually put into
  212.  
  213. use.
  214.  
  215.  
  216.         There  is  another  sort  of  problem  would   occur   in
  217.  
  218. interpersonal  communication  if  our only means of identifying a
  219.  
  220. person were by his phone number.  It is very common  for  several
  221.  
  222. people  to share a phone number.  If we identified people only by
  223.  
  224. phone numbers, we could not distinguish among several  people  at
  225.  
  226.  
  227.  
  228.  
  229.                                -2-
  230.  
  231.  
  232. IEN-183                              Bolt Beranek and Newman Inc.
  233.                                                     Eric C. Rosen
  234.  
  235.  
  236.  
  237. the same location.  This problem arises in computer networking if
  238.  
  239. several computers share the  same  port.   There  are,  in  fact,
  240.  
  241. several  reasons  why  it  may  be  desirable  to  allow  several
  242.  
  243. computers to share the same port.  One reson is simply  the  need
  244.  
  245. to  get  by  with a less than optimal amount of equipment, either
  246.  
  247. due to economics or to shortage.  If some administration has  two
  248.  
  249. computers,  each of which needs to be on the network only part of
  250.  
  251. the day, but which do not need to be on the network at  the  same
  252.  
  253. time,  sharing  a  single  port  may  be  the best solution.  The
  254.  
  255. increasing cost-effectiveness of such devices as  port  expanders
  256.  
  257. and  local  networks  may also make it more and more desirable to
  258.  
  259. have several computers sharing the same port.  A related  problem
  260.  
  261. arises  if  one thinks of a network of computers as consisting of
  262.  
  263. "logical hosts," rather than physical hosts.  Whereas a  physical
  264.  
  265. host  would  be  a  particular  piece of hardware, a logical host
  266.  
  267. would be the instantiation of  a  particular  function.   Thus  a
  268.  
  269. physical  host  which supported (for example) time-sharing during
  270.  
  271. the day and batch processing at night could be  regarded  as  two
  272.  
  273. logical  hosts  which share the port on a time-division basis.  A
  274.  
  275. related application is the situation in which  the  functionality
  276.  
  277. of  two  (small)  physical  hosts  is  combined into one (larger)
  278.  
  279. physical host, which then can be thought of as consisting of  two
  280.  
  281. logical  hosts.   It could be very useful to have the flexibility
  282.  
  283. to move logical hosts freely around the network, perhaps changing
  284.  
  285.  
  286.  
  287.                                -3-
  288.  
  289.  
  290. IEN-183                              Bolt Beranek and Newman Inc.
  291.                                                     Eric C. Rosen
  292.  
  293.  
  294.  
  295. the correspondence between particular logical and physical hosts,
  296.  
  297. without having to inform all users of the new physical addresses.
  298.  
  299.  
  300.         Of  course,  the  reasons  these  problems  in   computer
  301.  
  302. networking  are  more  serious  than  the  analogous  problems in
  303.  
  304. interpersonal communication is that telephone numbers are not the
  305.  
  306. only,  or  even  the  primary, means we have of identifying other
  307.  
  308. people.  We can identify other people by NAME, and  this  greatly
  309.  
  310. facilitates  our ability to get in touch with people even as they
  311.  
  312. change location.  It also enables us to specify the individual we
  313.  
  314. wish  to  talk  to, in the situation where several people share a
  315.  
  316. telephone.  Similar advantages would accrue if we could  identify
  317.  
  318. computers  by  name rather than by physical address.  In order to
  319.  
  320. get our data to the appropriate computer,  its  physical  address
  321.  
  322. would  still  have to be determined.  But the user should be able
  323.  
  324. to tell the network the name of the appropriate computer (perhaps
  325.  
  326. a  logical  rather  than  a  physical  host), and let the network
  327.  
  328. itself map the name to  its  physical  address.   For  speed  and
  329.  
  330. reliability,   the   mapping   function  should  be  accomplished
  331.  
  332. automatically (i.e., by software) with  minimal  need  for  human
  333.  
  334. intervention.   Schemes  to  accomplish this are known as LOGICAL
  335.  
  336. ADDRESSING schemes,  and  the  name  of  a  computer  is  usually
  337.  
  338. referred  to  as  its  "logical address" (though in fact, logical
  339.  
  340. addresses are not addresses at all, since they, like  names,  are
  341.  
  342.  
  343.  
  344.  
  345.                                -4-
  346.  
  347.  
  348. IEN-183                              Bolt Beranek and Newman Inc.
  349.                                                     Eric C. Rosen
  350.  
  351.  
  352.  
  353. independent of location).
  354.  
  355.  
  356.         A  good  logical  addressing  scheme  should  allow  more
  357.  
  358. flexibility  than may be already apparent.  We have spoken of the
  359.  
  360. need to be able  to  identify  a  computer  in  a  way  which  is
  361.  
  362. independent  of  location,  and  of  the  need  to be able to map
  363.  
  364. several distinct names onto a single physical address.  There  is
  365.  
  366. also a need to be able to map a single name onto several physical
  367.  
  368. addresses.   To  carry  out  the   analogy   with   interpersonal
  369.  
  370. communication,  this  would correspond to the case where a single
  371.  
  372. person has several  telephones,  with  different  phone  numbers,
  373.  
  374. possibly  at  different  locations.  This adds reliability to the
  375.  
  376. communications process, since if the person cannot be reached  at
  377.  
  378. one  phone  number,  perhaps he can be reached at another.  If he
  379.  
  380. can be reached at each of the numbers, he now can handle  several
  381.  
  382. conversations  simultaneously, i.e., he has increased throughput.
  383.  
  384. In computer networking, this sort  of  application  is  known  as
  385.  
  386. "multi-homing."  In  multi-homing,  a single computer connects to
  387.  
  388. the  network  through  several   ports,   usually   (though   not
  389.  
  390. necessarily) at several different network nodes.  This allows the
  391.  
  392. computer to remain on the network even though one of  its  access
  393.  
  394. lines,   ports,   or   home   nodes   fails,  thereby  increasing
  395.  
  396. reliability.  In  the  case  where  it  is  more  economical  (or
  397.  
  398. otherwise  more  practical)  to  obtain  several low-speed access
  399.  
  400.  
  401.  
  402.  
  403.                                -5-
  404.  
  405.  
  406. IEN-183                              Bolt Beranek and Newman Inc.
  407.                                                     Eric C. Rosen
  408.  
  409.  
  410.  
  411. lines than to obtain a single high speed line,  multi-homing  can
  412.  
  413. also  allow  a given host computer to obtain higher throughput at
  414.  
  415. less cost.
  416.  
  417.  
  418.         Another sort of application which requires a single  name
  419.  
  420. to  map  into  several  physical  addresses  can be compared to a
  421.  
  422. business which has several branch offices, each with a  different
  423.  
  424. phone number, but whose customers do not care which branch office
  425.  
  426. they reach.  This can be useful in certain sorts of  internetting
  427.  
  428. applications.   Suppose,  for example, that an ARPANET user wants
  429.  
  430. to send a packet to SATNET, but that there  are  several  equally
  431.  
  432. good gateways between the two networks.  It may be convenient for
  433.  
  434. the user to simply specify a name  like  "Gateway-to-SATNET"  and
  435.  
  436. let  the  network  choose  which  of  the several gateways (i.e.,
  437.  
  438. physical  addresses)  to  use.   A  related  sort   of   possible
  439.  
  440. application  has  to  do with distributed processing and resource
  441.  
  442. sharing.  If some particular resource  is  available  at  any  of
  443.  
  444. several  locations  around  the  network,  it may be desirable to
  445.  
  446. allow the user to specify the resource by  name,  and  allow  the
  447.  
  448. network  to  map  that name onto some particular physical address
  449.  
  450. according to criteria that the user need not be aware of.   (Such
  451.  
  452. a  service  was  formerly offered by the ARPANET TIPs.  By typing
  453.  
  454. @N, a user would be connected to a  "Resource-Sharing  Executive"
  455.  
  456. on  one  of  several  network  TENEX systems.  The user, however,
  457.  
  458.  
  459.  
  460.  
  461.                                -6-
  462.  
  463.  
  464. IEN-183                              Bolt Beranek and Newman Inc.
  465.                                                     Eric C. Rosen
  466.  
  467.  
  468.  
  469. would have no way of knowing which system he was actually on.)
  470.  
  471.  
  472.  
  473.  
  474. 2  Translating Logical to Physical Addresses
  475.  
  476.  
  477. 2.1  Translation Locus
  478.  
  479.  
  480.         It should be obvious that any implementation  of  logical
  481.  
  482. addressing  would  require  the network to maintain a translation
  483.  
  484. table.  The user would specify a logical address, and the network
  485.  
  486. would  use  this logical address as an index into the translation
  487.  
  488. table in order  to  obtain  the  physical  address  (or  list  of
  489.  
  490. physical  addresses)  to which it corresponds.  The network would
  491.  
  492. use the physical address internally to determine the  routing  of
  493.  
  494. user  messages.   The  need to maintain a translation table gives
  495.  
  496. rise to a multitude of design issues.  The  first  question  that
  497.  
  498. needs  to  be  answered is, where should the translation table be
  499.  
  500. located?   Should  every  node  maintain  a  copy  of  the  whole
  501.  
  502. translation  table,  or  should there be just a few copies of the
  503.  
  504. table scattered around the network in  strategic  locations?   If
  505.  
  506. there  are  only  a few copies scattered around the network, then
  507.  
  508. nodes which do not contain the tables would  have  to  query  the
  509.  
  510. nodes that do in order to perform the translation function.  This
  511.  
  512. is less efficient (both in terms of overhead and  response  time)
  513.  
  514. than   placing  the  table  in  every  node.   Considerations  of
  515.  
  516.  
  517.  
  518.  
  519.                                -7-
  520.  
  521.  
  522. IEN-183                              Bolt Beranek and Newman Inc.
  523.                                                     Eric C. Rosen
  524.  
  525.  
  526.  
  527. reliability and survivability also favor  placing  the  table  in
  528.  
  529. every node.  This eliminates the possibility of finding that, due
  530.  
  531. to network partition, all copies of  the  translation  table  are
  532.  
  533. inaccessible.   It eliminates the need to have some nodes serving
  534.  
  535. as hot or cold standby for the nodes which do  have  the  tables.
  536.  
  537. This  is  an  important  advantage, since the protocols needed to
  538.  
  539. implement "standby" tend to  be  slow  and  cumbersome,  or  else
  540.  
  541. unreliable.   Furthermore, if all nodes maintain identical copies
  542.  
  543. of the translation table, there is no  need  to  go  through  any
  544.  
  545. special  initialization  procedure  for creating the table when a
  546.  
  547. node first comes up.  Typically, a node which is just  coming  up
  548.  
  549. has  been reloaded from a neighboring node.  If all nodes have an
  550.  
  551. identical copy of the table, a node coming up can simply have its
  552.  
  553. table  reloaded  from its neighbor, i.e., can copy its neighbor's
  554.  
  555. table.  (Under certain unusual conditions this may give rise to a
  556.  
  557. race  condition, but as we shall see later, it is a race that can
  558.  
  559. be easily remedied and one that will  not  have  any  bad  effect
  560.  
  561. other than to slow the reload process.)
  562.  
  563.  
  564.         There is, however, a possible disadvantage to having  the
  565.  
  566. tables  in  every  node.   That is simply the need to have enough
  567.  
  568. memory in every node to hold the  table.   In  certain  networks,
  569.  
  570. particularly  commercial ones, the network nodes may be of widely
  571.  
  572. varying sizes and capabilities, and the smaller  nodes  just  may
  573.  
  574.  
  575.  
  576.  
  577.                                -8-
  578.  
  579.  
  580. IEN-183                              Bolt Beranek and Newman Inc.
  581.                                                     Eric C. Rosen
  582.  
  583.  
  584.  
  585. not  be  able  to  hold  the  complete  translation  table.  Such
  586.  
  587. networks  would  necessarily  have   a   hierarchical   structure
  588.  
  589. (probably  with  some  form  of hierarchical routing), and a node
  590.  
  591. would not be able to hold a translation table unless it  were  at
  592.  
  593. or above a certain level in the hierarchy.
  594.  
  595.  
  596.      Strictly speaking, only those nodes which will ever need  to
  597.  
  598. translate  a  logical  address to a physical address will need to
  599.  
  600. have a copy of the translation table.  Whether that is all  nodes
  601.  
  602. or  only  a  subset  of  the  nodes  depends  on  the translation
  603.  
  604. methodology that we adopt.  We have a  choice  between  requiring
  605.  
  606. translation  to  be done only at the source node, or requiring it
  607.  
  608. to be done also at tandem nodes.  In the former  case,  when  the
  609.  
  610. user  presents  some  data  to  the  network  and  specifies  its
  611.  
  612. destination with a logical address, the source node looks in  the
  613.  
  614. translation table, gets the physical address, places the physical
  615.  
  616. address in the packet header, and sends the packet  on  its  way.
  617.  
  618. Tandem  nodes  do  not look at the destination logical address at
  619.  
  620. all, but only at the physical address.  In the other  case,  each
  621.  
  622. tandem   node   looks  at  the  logical  address,  does  its  own
  623.  
  624. translation to physical address, and routes the  packet  on  that
  625.  
  626. basis.   The  packet  header  would  not even have to contain the
  627.  
  628. physical address.  If we do source  translation  only,  the  only
  629.  
  630. nodes  which  need  to  contain translation tables are those that
  631.  
  632.  
  633.  
  634.  
  635.                                -9-
  636.  
  637.  
  638. IEN-183                              Bolt Beranek and Newman Inc.
  639.                                                     Eric C. Rosen
  640.  
  641.  
  642.  
  643. connect to hosts which use logical addressing.   If  these  nodes
  644.  
  645. are  only  a  subset of all the nodes, then it may be feasible to
  646.  
  647. configure  these  nodes  with  more  memory  than   the   others.
  648.  
  649. Therefore,  we  must  look  at  the advantages of source node vs.
  650.  
  651. tandem node translation.
  652.  
  653.  
  654.  
  655.  
  656. 2.2  Translation Methodology
  657.  
  658.  
  659.         Clearly, in the case where a logical address  maps  to  a
  660.  
  661. unique  physical  address, source node translation is superior to
  662.  
  663. tandem node translation.  As long as there is only  one  possible
  664.  
  665. physical address for that logical address, all nodes will produce
  666.  
  667. exactly  the  same  mapping.   There  is  thus  no  advantage  to
  668.  
  669. performing  the  mapping several times, and the scheme which does
  670.  
  671. it only once is more efficient.  There is, however, one exception
  672.  
  673. to  this.   When  the  translation  tables need to be updated, we
  674.  
  675. cannot expect all copies to  be  updated  simultaneously.   There
  676.  
  677. will  necessarily  be some short interval of time when not all of
  678.  
  679. the copies of the table around the  network  are  identical,  and
  680.  
  681. during this interval, tandem node translation may yield different
  682.  
  683. results than source  node  translation.   It  will  certainly  be
  684.  
  685. necessary to design some mechanism to deal with this problem, and
  686.  
  687. we shall propose one shortly for the ARPANET environment.  Tandem
  688.  
  689. node  translation,  however,  is  not  the right solution to this
  690.  
  691.  
  692.  
  693.                               -10-
  694.  
  695.  
  696. IEN-183                              Bolt Beranek and Newman Inc.
  697.                                                     Eric C. Rosen
  698.  
  699.  
  700.  
  701. problem.  During the transient period, some copies of  the  table
  702.  
  703. will be right (up to date) and some wrong (out of date).  But the
  704.  
  705. copies at the tandem nodes will be no more  likely  to  be  right
  706.  
  707. than  the  copy  at  the  source node, so tandem node translation
  708.  
  709. would be as likely to amplify the problem as to reduce  it.   The
  710.  
  711. solution to this problem lies elsewhere.
  712.  
  713.  
  714.         In the case where  a  logical  address  maps  to  several
  715.  
  716. physical  addresses (multi-homing), tandem node translation might
  717.  
  718. well  give  different  results  than  source  node   translation.
  719.  
  720. However,  we  must  now  distinguish  between virtual circuit and
  721.  
  722. datagram  traffic.   If  virtual  circuit  traffic  is  logically
  723.  
  724. addressed,  all translation must be performed at the source node.
  725.  
  726. In  fact,  the  translation  must  be  performed  only  once,  at
  727.  
  728. connection  set-up time.  This is the only way to ensure that all
  729.  
  730. traffic on a given circuit is sent to the same physical  address,
  731.  
  732. which  in  turn  is  the  only  way to provide the sequencing and
  733.  
  734. duplicate detection that is the RAISON D'ETRE of virtual  circuit
  735.  
  736. traffic.    (Additional   issues  having  to  do  with  logically
  737.  
  738. addressed virtual circuit traffic will be discussed later.)  Thus
  739.  
  740. the only possible advantage of tandem node translation would have
  741.  
  742. to do with datagram traffic which is destined  to  a  multi-homed
  743.  
  744. logical  address.  To understand the differences, though, between
  745.  
  746. source node and tandem node translation, we  must  first  discuss
  747.  
  748.  
  749.  
  750.  
  751.                               -11-
  752.  
  753.  
  754. IEN-183                              Bolt Beranek and Newman Inc.
  755.                                                     Eric C. Rosen
  756.  
  757.  
  758.  
  759. the  criteria  which a node uses to pick one physical address out
  760.  
  761. of the several that are available.  Even though a host is  multi-
  762.  
  763. homed,  any  particular  packet  for it can go to only one of its
  764.  
  765. physical addresses; some criterion for choosing the proper one in
  766.  
  767. each   particular  case  must  therefore  be  available.  Several
  768.  
  769. possible criteria come readily to mind:
  770.  
  771.  
  772.         a)   When   there   are   several   physical    addresses
  773.  
  774. corresponding  to a given logical address, it may be desirable to
  775.  
  776. send packets to the physical address  which  is  closest  to  the
  777.  
  778. source  node, according to some metric of distance.  For example,
  779.  
  780. if we are interested in minimizing delay, we may want  to  choose
  781.  
  782. the physical address to which the delay from the source is least.
  783.  
  784. If SPF routing is used, this information  is  readily  available.
  785.  
  786. If  we  are interested in minimizing the use of network resources
  787.  
  788. by a particular packet  (i.e.,  in  maximizing  throughput  while
  789.  
  790. still  using  only  a  single  path),  we  may want to choose the
  791.  
  792. physical address which is the  least  number  of  hops  from  the
  793.  
  794. source.   (For  these  purposes, ties can be broken arbitrarily.)
  795.  
  796. Again, this information can be made readily available by the  SPF
  797.  
  798. routing  algorithm (although it is not readily available from the
  799.  
  800. ARPANET's particular implementation of that  algorithm,  since  a
  801.  
  802. table  of  hop-counts is not saved).  If either of these criteria
  803.  
  804. is used, tandem node  translation  can  result  in  better  route
  805.  
  806.  
  807.  
  808.  
  809.                               -12-
  810.  
  811.  
  812. IEN-183                              Bolt Beranek and Newman Inc.
  813.                                                     Eric C. Rosen
  814.  
  815.  
  816.  
  817. selection for the logically addressed datagram.  If delay changes
  818.  
  819. or topology changes take place while a packet is in  transit,  it
  820.  
  821. may  happen  that  the  "closest" physical address to some tandem
  822.  
  823. node is different from the physical address that was  closest  to
  824.  
  825. the source node when the packet first entered the network.  It is
  826.  
  827. easy to prove that, if SPF routing is used, this cannot result in
  828.  
  829. looping,  except as a transient phenomenon while a routing update
  830.  
  831. is traversing the network.  That is no  particular  disadvantage,
  832.  
  833. since  a  packet may be subject to that sort of transient looping
  834.  
  835. even when its  destination  physical  address  does  not  change.
  836.  
  837. However,  it  is  not clear that tandem node translation provides
  838.  
  839. much of an advantage  either,  especially  when  one  takes  into
  840.  
  841. account  the  additional  overhead of doing the re-translation at
  842.  
  843. each  tandem  node.   Doing  translation  at  tandem  nodes  will
  844.  
  845. necessarily  increase  the  nodal  delay  and  decrease the nodal
  846.  
  847. throughput.  These negative effects  may  outweigh  the  positive
  848.  
  849. effects  of  improved  route  selection for those relatively rare
  850.  
  851. cases in which delay or topology changes  significantly  while  a
  852.  
  853. packet  is  in  transit.   We  must  remember  that although real
  854.  
  855. improvements in route selection would only  occur  rarely  (since
  856.  
  857. delay and topology changes are very infrequent when compared with
  858.  
  859. average network transit times), re-translation would have  to  be
  860.  
  861. done  for EVERY logically addressed datagram.  Unfortunately, all
  862.  
  863. these effects are extremely difficult to quantify with any degree
  864.  
  865.  
  866.  
  867.                               -13-
  868.  
  869.  
  870. IEN-183                              Bolt Beranek and Newman Inc.
  871.                                                     Eric C. Rosen
  872.  
  873.  
  874.  
  875. of  confidence.   Our  (somewhat  intuitive)  conclusion is that,
  876.  
  877. under the selection criterion of choosing  the  closest  physical
  878.  
  879. address,   tandem   node  translation  offers  at  best  a  small
  880.  
  881. improvement over source node translation, and at worst  a  severe
  882.  
  883. degradation.
  884.  
  885.  
  886.         b) It is possible that some multi-homed hosts  will  want
  887.  
  888. to  establish an inherent ordering to their ports.  That is, they
  889.  
  890. may prefer to receive all their traffic on port  A,  unless  that
  891.  
  892. port  is inaccessible to the source of the traffic, in which case
  893.  
  894. they prefer to receive all traffic on port B, unless that port is
  895.  
  896. inaccessible  to  the  source  of the traffic, in which case they
  897.  
  898. prefer to receive all traffic on  port  C,  etc.   This  sort  of
  899.  
  900. strategy  may  be appropriate if certain of the host access lines
  901.  
  902. are charged according to a volume-based tariff, while others  are
  903.  
  904. not.   It  may also be appropriate if certain of the access lines
  905.  
  906. can be used more efficiently (i.e., can  be  serviced  with  less
  907.  
  908. host  CPU  bandwidth)  than  others.  (An example might be a host
  909.  
  910. which can access the ARPANET through an 1822 line and a VDH line.
  911.  
  912. It  might  be  desirable to avoid the VDH line, unless absolutely
  913.  
  914. necessary, since VDH lines tend to be used less efficiently.)  In
  915.  
  916. either case, the idea would be to reduce cost by favoring certain
  917.  
  918. ports over others, using  the  more  expensive  ports  only  when
  919.  
  920. needed  for purposes of reliability or availability.  Thus we may
  921.  
  922.  
  923.  
  924.  
  925.                               -14-
  926.  
  927.  
  928. IEN-183                              Bolt Beranek and Newman Inc.
  929.                                                     Eric C. Rosen
  930.  
  931.  
  932.  
  933. want  the  logical  addressing  scheme  to  support  an  inherent
  934.  
  935. ordering among the several physical addresses which correspond to
  936.  
  937. a given logical address.  With this scheme, there is no advantage
  938.  
  939. to  doing  tandem  node  translation.   There  will  be  only one
  940.  
  941. ordering for the set of physical  addresses  corresponding  to  a
  942.  
  943. logical  address,  so  tandem  nodes  should always pick the same
  944.  
  945. physical address as the source node  picked,  and  re-translation
  946.  
  947. would  simply  be  a  waste  of  resources.   There  are only two
  948.  
  949. exceptions to this.  The  first  exception  would  arise  in  the
  950.  
  951. situation   where   a   particular   physical   address   becomes
  952.  
  953. inaccessible as a packet routed to that address is traversing the
  954.  
  955. network.   However, since this can happen no matter what criteria
  956.  
  957. are used for choosing among the physical addresses, we put it off
  958.  
  959. for later consideration.  The second exception would arise if the
  960.  
  961. translation tables were  being  updated  while  a  packet  is  in
  962.  
  963. transit.   Clearly, some procedure to deal with this case must be
  964.  
  965. devised, since the update which is taking  place  may  invalidate
  966.  
  967. the  translation  which  was  done  at  the  source.  Tandem node
  968.  
  969. translation is not the proper solution, however, since  there  is
  970.  
  971. in  general no reason to believe that the tandem node is more up-
  972.  
  973. to-date than the source node.  We will return to this issue  when
  974.  
  975. we discuss the table updating procedures.
  976.  
  977.  
  978.         c) Certain multi-homed hosts may have  a  preference  for
  979.  
  980.  
  981.  
  982.  
  983.                               -15-
  984.  
  985.  
  986. IEN-183                              Bolt Beranek and Newman Inc.
  987.                                                     Eric C. Rosen
  988.  
  989.  
  990.  
  991. receiving certain kinds of traffic over particular ports.  Thus a
  992.  
  993. dual-homed host may consider one of its ports more  suitable  for
  994.  
  995. receiving  batch traffic, and another more suitable for receiving
  996.  
  997. interactive traffic (perhaps the first port offers a higher speed
  998.  
  999. but  a  longer  delay  than  the second).  However, if one of the
  1000.  
  1001. ports is inaccessible from a particular source  node,  that  node
  1002.  
  1003. would send all its traffic (both kinds) to the port which remains
  1004.  
  1005. accessible.  With this criterion, we see once again  that  tandem
  1006.  
  1007. node translation offers no benefits, since, barring the case of a
  1008.  
  1009. port becoming inaccessible while a  packet  is  in  transit,  all
  1010.  
  1011. tandem nodes would select the same physical address as the source
  1012.  
  1013. node.
  1014.  
  1015.  
  1016.         d) Some multi-homed hosts may wish to try to  keep  their
  1017.  
  1018. several access lines as equally loaded as possible.  One possible
  1019.  
  1020. way to do this would be to establish an inherent ordering to  the
  1021.  
  1022. ports  (as  in  b, above), but to make the ordering different for
  1023.  
  1024. different source nodes (or hosts).  Clearly, this scheme requires
  1025.  
  1026. source node translation; tandem node translation would only serve
  1027.  
  1028. to defeat it.  Another possible way to achieve some sort of  load
  1029.  
  1030. leveling  would  be  for  each source node to send traffic to the
  1031.  
  1032. various physical addresses on a round-robin basis.  This would be
  1033.  
  1034. a  very crude form of control, but might work reasonably well for
  1035.  
  1036. particular traffic patterns.  This scheme  also  requires  source
  1037.  
  1038.  
  1039.  
  1040.  
  1041.                               -16-
  1042.  
  1043.  
  1044. IEN-183                              Bolt Beranek and Newman Inc.
  1045.                                                     Eric C. Rosen
  1046.  
  1047.  
  1048.  
  1049. node   translation.   In  fact,  tandem  node  translation  could
  1050.  
  1051. actually cause packets to loop endlessly.
  1052.  
  1053.  
  1054.         We see then that none of the suggested selection criteria
  1055.  
  1056. give  any  very  large  advantage to tandem node translation, and
  1057.  
  1058. some of the criteria are actually in conflict with re-translation
  1059.  
  1060. at  tandem nodes.  Thus it is not necessary for all notes to hold
  1061.  
  1062. the translation tables; only those nodes connected to hosts which
  1063.  
  1064. use  logical  addressing  need hold the tables.  Of course, it is
  1065.  
  1066. still possible that the tables will be too large to  be  held  in
  1067.  
  1068. any  one  node,  in  which  case we would have to use distributed
  1069.  
  1070. database techniques to split the tables among several nodes.   We
  1071.  
  1072. will not consider that further here, but we will consider it in a
  1073.  
  1074. future IEN.
  1075.  
  1076.  
  1077.  
  1078.  
  1079. 3  Organizing the Translation Tables
  1080.  
  1081.  
  1082.         Another issue having to do with the translation tables is
  1083.  
  1084. the  way  in which the tables should be organized.  Clearly we do
  1085.  
  1086. not want the  entries  in  the  table  to  be  in  random  order,
  1087.  
  1088. necessitating  a  lengthy  linear  search each time a translation
  1089.  
  1090. must be done.  Basically, there are two possible  ways  to  order
  1091.  
  1092. the  table.   We  can sort the table by logical address, and do a
  1093.  
  1094. binary search of the table whenever we need to do  a  logical-to-
  1095.  
  1096.  
  1097.  
  1098.  
  1099.                               -17-
  1100.  
  1101.  
  1102. IEN-183                              Bolt Beranek and Newman Inc.
  1103.                                                     Eric C. Rosen
  1104.  
  1105.  
  1106.  
  1107. physical address translation.  This is a rather efficient form of
  1108.  
  1109. searching, but it causes inefficiencies when table  entries  have
  1110.  
  1111. to be inserted or deleted, since that would require a potentially
  1112.  
  1113. time-consuming expansion or compression of the table.  There are,
  1114.  
  1115. however,    ways   of   reducing   the   overhead   involved   in
  1116.  
  1117. insertions/deletions.  Deletions could be made "logically", i.e.,
  1118.  
  1119. by  marking  an entry deleted, rather than physically compressing
  1120.  
  1121. the table.  New entries could be inserted into an overflow  area,
  1122.  
  1123. which  itself  would  be  searched linearly whenever a particular
  1124.  
  1125. logical address could not be found in  the  main  table.   Actual
  1126.  
  1127. compression/expansion  of  the main table would be done only when
  1128.  
  1129. the overflow area filled.   Note,  however,  that  this  sort  of
  1130.  
  1131. strategy  would  necessarily complicate the search algorithm, and
  1132.  
  1133. this might  actually  do  more  harm  than  good,  especially  if
  1134.  
  1135. insertions  and  deletions  are rare events.  We shall see later,
  1136.  
  1137. when  we  discuss  the  conditions  under  which  insertions  and
  1138.  
  1139. deletions  are  required,  that these are indeed rare events.  We
  1140.  
  1141. conclude  tentatively  that,  if  a  sorted  table  with   binary
  1142.  
  1143. searching  is  used,  the use of an overflow area is probably not
  1144.  
  1145. necessary.
  1146.  
  1147.  
  1148.         The other possibility for organizing the table is to  use
  1149.  
  1150. hashing.   A  good  hashing  algorithm (i.e., one which minimizes
  1151.  
  1152. collisions) provides very efficient insertions and very efficient
  1153.  
  1154.  
  1155.  
  1156.  
  1157.                               -18-
  1158.  
  1159.  
  1160. IEN-183                              Bolt Beranek and Newman Inc.
  1161.                                                     Eric C. Rosen
  1162.  
  1163.  
  1164.  
  1165. searches.   Deletions  are  not quite so efficient, but are still
  1166.  
  1167. more efficient, in general, than the table  compression  required
  1168.  
  1169. if  binary  searching  is  used.   However,  hashing  has certain
  1170.  
  1171. inherent problems which may make it less  suitable.   Choosing  a
  1172.  
  1173. hashing   algorithm   which  both  minimizes  collisions  and  is
  1174.  
  1175. computationally efficient is not a simple matter.   One  must  be
  1176.  
  1177. sure  that  the time needed to perform the hashing is really less
  1178.  
  1179. than the average time needed to find an entry in a  sorted  table
  1180.  
  1181. by  means of binary searching; otherwise, the efficiency is lost.
  1182.  
  1183. Furthermore, the number of collisions generated by  a  particular
  1184.  
  1185. hashing  algorithm  will  depend  on exactly which set of logical
  1186.  
  1187. addresses are in use.  The set of logical addresses in use during
  1188.  
  1189. a network's lifetime will be a slowly changing set, and a hashing
  1190.  
  1191. algorithm  which  is  excellent  at  one  time  may   give   poor
  1192.  
  1193. performance  at  another.  Hashing algorithms are also subject to
  1194.  
  1195. undetected programming bugs in  a  way  in  which  binary  search
  1196.  
  1197. algorithms  are  not.   A  bug  which  is inserted into a hashing
  1198.  
  1199. algorithm, which, for example, causes all entries  to  hash  into
  1200.  
  1201. the same bucket, might go undetected for years, although it would
  1202.  
  1203. cause a  significant  performance  degradation  by  reducing  the
  1204.  
  1205. efficiency  of the hashing technique to that of linear searching.
  1206.  
  1207. A bug in the binary search  algorithm,  however,  would  be  more
  1208.  
  1209. likely to come to someone's attention.  Its probable result would
  1210.  
  1211. not be performance  degradation,  but  rather,  failure  to  find
  1212.  
  1213.  
  1214.  
  1215.                               -19-
  1216.  
  1217.  
  1218. IEN-183                              Bolt Beranek and Newman Inc.
  1219.                                                     Eric C. Rosen
  1220.  
  1221.  
  1222.  
  1223. certain  entries.   This would cause inability to deliver traffic
  1224.  
  1225. to certain logical addresses, and this would  certainly  come  to
  1226.  
  1227. the  users'  attention  very  quickly.  These qualitative reasons
  1228.  
  1229. would seem to indicate that binary  searching  is  preferable  to
  1230.  
  1231. hashing.   It  would  also  be  useful  to  do  some quantitative
  1232.  
  1233. analysis; that may be done at a later stage of our research.
  1234.  
  1235.  
  1236.         Someone may wonder why we  have  not  considered  a  much
  1237.  
  1238. simpler  method  of  organizing  the  tables.  Logical addresses,
  1239.  
  1240. after all, are just numbers (or at  least  are  representable  as
  1241.  
  1242. numbers).   If  the  set of logical addresses in use at any given
  1243.  
  1244. time is a contiguous set of numbers, then the  addresses  can  be
  1245.  
  1246. used  as  indexes directly into a translation table, with no need
  1247.  
  1248. either for hashing or for sorting.  The problem, of course,  lies
  1249.  
  1250. in  the  requirement  that  the  set  of logical addresses form a
  1251.  
  1252. contiguous  set  of  numbers.    Assigning   numbers   to   hosts
  1253.  
  1254. contiguously  may not be a problem in itself, but it does cause a
  1255.  
  1256. problem as soon as some host is removed from  the  network.   Its
  1257.  
  1258. number  (or  numbers, if it has several logical addresses) cannot
  1259.  
  1260. be left unused, or the size of the  translation  table  would  be
  1261.  
  1262. determined  not  by  the number of logical addresses currently in
  1263.  
  1264. use in the network, but rather by the number of logical addresses
  1265.  
  1266. that  have ever been in use in the network, a number which may be
  1267.  
  1268. much larger, and which in fact has  no  bound.   Yet  it  is  not
  1269.  
  1270.  
  1271.  
  1272.  
  1273.                               -20-
  1274.  
  1275.  
  1276. IEN-183                              Bolt Beranek and Newman Inc.
  1277.                                                     Eric C. Rosen
  1278.  
  1279.  
  1280.  
  1281. acceptable simply to reassign the same logical addresses as hosts
  1282.  
  1283. enter or leave the network.  We all  have  some  experience  with
  1284.  
  1285. moving  to  a  new  location, getting a new telephone number, and
  1286.  
  1287. finding ourselves  frequently  getting  calls  intended  for  the
  1288.  
  1289. person  who  previously  had that number.  Such calls may persist
  1290.  
  1291. for years, especially if the  number  previously  belonged  to  a
  1292.  
  1293. business.   Receiving  phone  calls  or mail intended for someone
  1294.  
  1295. else who happens to have the  same  name  as  we  do  is  also  a
  1296.  
  1297. familiar  occurrence.   We  would  expect  analogous  problems if
  1298.  
  1299. logical  addresses  are  reassigned  (at  least,  if   they   are
  1300.  
  1301. reassigned  without some very long waiting period), especially if
  1302.  
  1303. the logical address previously belonged to a large service  host.
  1304.  
  1305. When  a  user  tries  to address a host which is no longer on the
  1306.  
  1307. network, he should receive  some  indication  of  that  fact;  he
  1308.  
  1309. should  NOT  have his data mis-delivered to some other host which
  1310.  
  1311. has been assigned the same name.  Thus it is preferable to have a
  1312.  
  1313. logical  addressing  scheme  which does not depend on the logical
  1314.  
  1315. addresses forming a contiguous set of numbers.
  1316.  
  1317.  
  1318.         Whatever means of organizing the table is chosen, it  may
  1319.  
  1320. still be useful to maintain a smaller table for use as a "cache."
  1321.  
  1322. The  cache  would  contain  the  n  most  recently  used  logical
  1323.  
  1324. addresses (where n is some small number), together with a pointer
  1325.  
  1326. to the absolute location of that logical  address  entry  in  the
  1327.  
  1328.  
  1329.  
  1330.  
  1331.                               -21-
  1332.  
  1333.  
  1334. IEN-183                              Bolt Beranek and Newman Inc.
  1335.                                                     Eric C. Rosen
  1336.  
  1337.  
  1338.  
  1339. main  translation table.  When it is necessary to do translation,
  1340.  
  1341. the  cache  would  be  searched  before  the  main  table.    The
  1342.  
  1343. assumption  is  that  once  one  packet  for a particular logical
  1344.  
  1345. address is received from a source host, many  more  will  follow.
  1346.  
  1347. Thus  it  pays to optimize the search for that particular logical
  1348.  
  1349. address.  Choosing the optimum size for the cache, and the  means
  1350.  
  1351. of  searching  it  (linear  or  binary) are issues left for later
  1352.  
  1353. resolution.  These issues must be dealt with carefully,  however;
  1354.  
  1355. one would not want to find that searching the cache takes as long
  1356.  
  1357. or longer than searching the main table.  It is worth emphasizing
  1358.  
  1359. that the cache should contain a pointer into the main translation
  1360.  
  1361. table, rather than a copy  of  the  list  of  physical  addresses
  1362.  
  1363. associated  with  a  particular logical address.  For multi-homed
  1364.  
  1365. logical addresses, this is more efficient, since it involves less
  1366.  
  1367. copying.   Also,  if  there  are  variables  associated  with the
  1368.  
  1369. physical addresses, this enables unique copies of  the  variables
  1370.  
  1371. to  be  kept  in  the  main  table.   (Suppose, for example, that
  1372.  
  1373. packets are to be sent on a  round-robin  basis  to  the  several
  1374.  
  1375. physical   addresses   corresponding  to  a  multi-homed  logical
  1376.  
  1377. address.  This requires a variable to  be  associated  with  each
  1378.  
  1379. physical  address,  indicating  whether that physical address was
  1380.  
  1381. the last one to be sent data.  This variable must be kept in  the
  1382.  
  1383. main  table, not the cache, since one cannot rely on a particular
  1384.  
  1385. logical address always being present in the cache.)  This  means,
  1386.  
  1387.  
  1388.  
  1389.                               -22-
  1390.  
  1391.  
  1392. IEN-183                              Bolt Beranek and Newman Inc.
  1393.                                                     Eric C. Rosen
  1394.  
  1395.  
  1396.  
  1397. of  course,  that  the  cache  must be cleared whenever there are
  1398.  
  1399. insertions or deletions into the main translation table, but that
  1400.  
  1401. should  not  be  very  expensive  as  long as such insertions and
  1402.  
  1403. deletions are relatively rare.
  1404.  
  1405.  
  1406.  
  1407.  
  1408. 4  Initializing the Translation Tables
  1409.  
  1410.  
  1411.         We turn now to the issue of  how  the  translation  table
  1412.  
  1413. entries  are  to  be  set  up  in the first place.  That is, what
  1414.  
  1415. procedure is to  be  used  for  establishing  that  a  particular
  1416.  
  1417. logical  address  is  to  map  to  a  particular  set of physical
  1418.  
  1419. addresses.  One possibility for the ARPANET,  of  course,  is  to
  1420.  
  1421. have all the mappings set up by the Network Control Center (NCC).
  1422.  
  1423. This is quite reasonable in certain cases.  If  some  user  wants
  1424.  
  1425. his computer to be addressable by some new logical address (i.e.,
  1426.  
  1427. by a logical address not previously in use), it  makes  sense  to
  1428.  
  1429. have  him  contact  the  NCC  directly.   If  the user has proper
  1430.  
  1431. authorization, the NCC can then take action to  set  up  the  new
  1432.  
  1433. entry  in  all the translation tables.  A similar procedure would
  1434.  
  1435. also be appropriate if some logical  address  is  to  be  totally
  1436.  
  1437. removed  from  the translation tables (i.e., that logical address
  1438.  
  1439. will no longer be in use in that network).  This procedure  would
  1440.  
  1441. also  be appropriate when a particular computer is moved from one
  1442.  
  1443. location to another, necessitating a change  in  its  logical-to-
  1444.  
  1445.  
  1446.  
  1447.                               -23-
  1448.  
  1449.  
  1450. IEN-183                              Bolt Beranek and Newman Inc.
  1451.                                                     Eric C. Rosen
  1452.  
  1453.  
  1454.  
  1455. physical  mapping,  or  if  the functionality of two computers is
  1456.  
  1457. combined into one, so that two logical addresses  which  formerly
  1458.  
  1459. mapped  to  distinct  physical  addresses  now  map  to  the same
  1460.  
  1461. physical address.  What all these cases have in  common  is  that
  1462.  
  1463. they  are  relatively infrequent (i.e., occurring on the order of
  1464.  
  1465. days, rather than on the order  of  minutes),  and  they  require
  1466.  
  1467. considerable    advance    planning.     The   first   of   these
  1468.  
  1469. characteristics ensures that NCC personnel will  not  be  swamped
  1470.  
  1471. with   translation   table   changes.    The   second   of  these
  1472.  
  1473. characteristics makes it feasible to coordinate such  changes  in
  1474.  
  1475. advance  with  the NCC.  Unfortunately, not all translation table
  1476.  
  1477. changes  have  these  characteristics.   For  example,  we   have
  1478.  
  1479. suggested that a good logical addressing scheme should facilitate
  1480.  
  1481. port-sharing.  That is, some user might want to unplug one of his
  1482.  
  1483. computers  from  the  network  and  use  that  port  for  another
  1484.  
  1485. computer.  He should be able to  do  this  without  much  advance
  1486.  
  1487. planning,  and  without  having to explicitly coordinate with the
  1488.  
  1489. NCC.  As soon as the change is  made,  users  who  are  logically
  1490.  
  1491. addressing the first computer should be told that it is no longer
  1492.  
  1493. on the network; only the logical address of the  second  computer
  1494.  
  1495. should  map to this port.  If this change in the mapping does not
  1496.  
  1497. take place immediately, the result can be mis-delivery  of  data,
  1498.  
  1499. as  packets  which  are logically addressed to the first computer
  1500.  
  1501. get mis-delivered to the second.  A similar situation  arises  if
  1502.  
  1503.  
  1504.  
  1505.                               -24-
  1506.  
  1507.  
  1508. IEN-183                              Bolt Beranek and Newman Inc.
  1509.                                                     Eric C. Rosen
  1510.  
  1511.  
  1512.  
  1513. some  computer consists of several "logical hosts." Logical hosts
  1514.  
  1515. may come and go quite frequently, with  no  advance  planning  at
  1516.  
  1517. all.   The  logical  addressing  system  should  be able to adapt
  1518.  
  1519. immediately  to  such  changes,  without  any  need   for   human
  1520.  
  1521. intervention.   A related situation arises in the case of logical
  1522.  
  1523. addresses which  are  multi-homed.   We  have  already  discussed
  1524.  
  1525. various possible criteria for choosing among the several physical
  1526.  
  1527. addresses associated with a single multi-homed  logical  address.
  1528.  
  1529. But  before applying these criteria, any physical addresses which
  1530.  
  1531. are "inaccessible" from the source node  must  be  excluded.   If
  1532.  
  1533. some  host has two access lines into the network, and one of them
  1534.  
  1535. is inaccessible from a particular source node, then  all  traffic
  1536.  
  1537. from  that  source  node  should  be directed to the other access
  1538.  
  1539. line.  Indeed, this is one of  the  most  important  purposes  of
  1540.  
  1541. multi-homing.  This implies that a source node must have some way
  1542.  
  1543. of knowing that a  certain  physical  address  is  not  currently
  1544.  
  1545. accessible.   There  are  basically  two classes of reasons why a
  1546.  
  1547. given physical address might be inaccessible from a source  node.
  1548.  
  1549. The  first  is  that there is no path from the source node to the
  1550.  
  1551. destination node (either because the network is  partitioned,  or
  1552.  
  1553. because  the  destination  node  is  down).   This information is
  1554.  
  1555. readily available from the routing tables, and need not  be  kept
  1556.  
  1557. in  the  translation  tables.   It  is simple enough to check the
  1558.  
  1559. routing  tables  when  choosing  one  from  a  set  of   physical
  1560.  
  1561.  
  1562.  
  1563.                               -25-
  1564.  
  1565.  
  1566. IEN-183                              Bolt Beranek and Newman Inc.
  1567.                                                     Eric C. Rosen
  1568.  
  1569.  
  1570.  
  1571. addresses.   The  other  reason  why  a physical address might be
  1572.  
  1573. inaccessible is that the port itself, or the access line from the
  1574.  
  1575. port  to  the  host,  has  failed.   Functionally,  this  is  the
  1576.  
  1577. equivalent of unplugging the host from the port.  It  may  happen
  1578.  
  1579. quite   frequently,   however,  and  certainly  with  no  advance
  1580.  
  1581. planning.  As  long  as  the  node  itself  is  up,  the  routing
  1582.  
  1583. algorithm  will give no indication that the port is inaccessible;
  1584.  
  1585. this information must somehow get into  the  translation  tables.
  1586.  
  1587. Clearly, we do not want to depend on human intervention to ensure
  1588.  
  1589. that this sort of change gets made  in  the  translation  tables.
  1590.  
  1591. What  is  needed  here  is  a  quick and reliable means of making
  1592.  
  1593. changes  in  the  translation  tables,  not  the  cumbersome  and
  1594.  
  1595. unreliable method of contacting the NCC.  The same problem arises
  1596.  
  1597. when the inaccessible port becomes accessible again.   One  wants
  1598.  
  1599. to  be  able  to begin using this port again as soon as possible,
  1600.  
  1601. without having to wait until NCC personnel have time to make  the
  1602.  
  1603. appropriate  changes  in  the  translation  tables.   So although
  1604.  
  1605. certain sorts of changes to the translation tables can be made by
  1606.  
  1607. the   NCC,   many  sorts  of  changes  will  occur  suddenly  and
  1608.  
  1609. unexpectedly, and need to become effective immediately.   So  the
  1610.  
  1611. procedure of having all translation table changes made by the NCC
  1612.  
  1613. is not satisfactory.
  1614.  
  1615.  
  1616.         There is another sort of problem with having  translation
  1617.  
  1618.  
  1619.  
  1620.  
  1621.                               -26-
  1622.  
  1623.  
  1624. IEN-183                              Bolt Beranek and Newman Inc.
  1625.                                                     Eric C. Rosen
  1626.  
  1627.  
  1628.  
  1629. table changes made by the NCC.  The problem is that carelessness,
  1630.  
  1631. either by the NCC or by host site personnel, can result  in  mis-
  1632.  
  1633. delivery  of  data  if changes are made by the NCC.  Suppose, for
  1634.  
  1635. example, that a network controller makes a  typographical  error,
  1636.  
  1637. associating a logical address with an incorrect physical address.
  1638.  
  1639. If there is no further check on the validity of that mapping, one
  1640.  
  1641. computer  may  receive data intended for another.  A good logical
  1642.  
  1643. addressing  scheme   should   prevent   this   sort   of   simple
  1644.  
  1645. typographical  error  from  resulting  in mis-delivery.  The same
  1646.  
  1647. situation can occur if one computer is  carelessly  plugged  into
  1648.  
  1649. the  wrong  port.  In this case, networks which use only physical
  1650.  
  1651. addressing might also mis-deliver data.  However,  with  physical
  1652.  
  1653. addressing,  one  must  expect  mis-delivery  if some computer is
  1654.  
  1655. plugged into the wrong  port  (i.e.,  given  the  wrong  physical
  1656.  
  1657. address)  due  to carelessness.  With logical addressing, this is
  1658.  
  1659. not inevitable, and a good scheme should give  better  protection
  1660.  
  1661. against carelessness.
  1662.  
  1663.  
  1664.         Another possibility for setting up the translation  table
  1665.  
  1666. entries is to have each host, as it comes up on the network, tell
  1667.  
  1668. the network which logical addresses it wants to be  addressed  by
  1669.  
  1670. over   each   of   its  (physical)  ports.   This  would  require
  1671.  
  1672. augmentation of the host access protocol to  include  a  "Logical
  1673.  
  1674. Address  Declaration"  (LAD)  message.  A given host could put as
  1675.  
  1676.  
  1677.  
  1678.  
  1679.                               -27-
  1680.  
  1681.  
  1682. IEN-183                              Bolt Beranek and Newman Inc.
  1683.                                                     Eric C. Rosen
  1684.  
  1685.  
  1686.  
  1687. many logical addresses as it wanted in each LAD message.   Multi-
  1688.  
  1689. homed  hosts  would  send the same LAD message over each of their
  1690.  
  1691. ports.  The  logical  addresses  specified  in  the  LAD  message
  1692.  
  1693. received over a given port would all be mapped to that particular
  1694.  
  1695. physical address.  Hosts would be allowed to change their logical
  1696.  
  1697. addresses  at  any  time by sending a LAD message to the network.
  1698.  
  1699. Since a host may wish to add  or  delete  logical  addresses  for
  1700.  
  1701. itself  at  any  time, there would have to be two options for the
  1702.  
  1703. LAD message -- "add" and "delete."  Whenever  a  particular  port
  1704.  
  1705. goes  down  (either  because  the  port  itself fails to function
  1706.  
  1707. properly, or because the access line between the network and  the
  1708.  
  1709. host  fails, or because the host itself crashes), all mappings of
  1710.  
  1711. logical addresses to that port would be cancelled.  When the host
  1712.  
  1713. can once again communicate with the network through that port, it
  1714.  
  1715. would have to redeclare its logical addresses with a LAD  message
  1716.  
  1717. before it could receive any logically addressed traffic.
  1718.  
  1719.  
  1720.         Allowing each host to set up its own  logical-to-physical
  1721.  
  1722. address  mappings  in  this  manner  has  several advantages over
  1723.  
  1724. having all the mappings set up by the NCC.  This procedure allows
  1725.  
  1726. sudden  and unplanned mapping changes to take effect immediately,
  1727.  
  1728. with no need for advance planning and coordination with the  NCC.
  1729.  
  1730. Since  the  mappings  are  cancelled immediately when a port goes
  1731.  
  1732. down, this procedure helps to ensure that, if  one  of  a  multi-
  1733.  
  1734.  
  1735.  
  1736.  
  1737.                               -28-
  1738.  
  1739.  
  1740. IEN-183                              Bolt Beranek and Newman Inc.
  1741.                                                     Eric C. Rosen
  1742.  
  1743.  
  1744.  
  1745. homed host's ports is down, all data which is logically addressed
  1746.  
  1747. to that host will  go  to  the  other  ports.   If  one  host  is
  1748.  
  1749. unplugged  from  a  given port, and another plugged in its place,
  1750.  
  1751. the procedure ensures that the mapping  for  the  first  host  is
  1752.  
  1753. cancelled,   while  the  mapping  for  the  second  host  becomes
  1754.  
  1755. effective.  When a host goes down, there is  no  assumption  that
  1756.  
  1757. the   same   host  will  return  in  the  same  location.   Hence
  1758.  
  1759. carelessness on the part  of  site  personnel  or  NCC  personnel
  1760.  
  1761. cannot  result  in  mis-delivery of data; data which is logically
  1762.  
  1763. addressed to a certain host could only be  delivered  to  a  host
  1764.  
  1765. which has declared itself to have that logical address.
  1766.  
  1767.  
  1768.         There are, however, two quite serious problems with  this
  1769.  
  1770. procedure.  The first problem is that of spoofing.  That is, this
  1771.  
  1772. procedure offers no protection against the  situation  where  one
  1773.  
  1774. host declares itself to be addressable by a logical address which
  1775.  
  1776. is supposed to be the logical address of a different host.   Thus
  1777.  
  1778. the  procedure  allows  one  host to "steal" traffic intended for
  1779.  
  1780. another, simply by declaring itself  to  have  the  same  logical
  1781.  
  1782. address  as  the other.  This sort of spoofing might be done by a
  1783.  
  1784. malicious user, who is really  trying  to  steal  someone  else's
  1785.  
  1786. data,  or it might happen accidentally, as a result of programmer
  1787.  
  1788. or operator error.  In either case, we would like  to  have  some
  1789.  
  1790. procedure  which  is  less  prone to spoofing.  The other serious
  1791.  
  1792.  
  1793.  
  1794.  
  1795.                               -29-
  1796.  
  1797.  
  1798. IEN-183                              Bolt Beranek and Newman Inc.
  1799.                                                     Eric C. Rosen
  1800.  
  1801.  
  1802.  
  1803. problem with this procedure is  that  it  can  easily  cause  the
  1804.  
  1805. translation  tables  to  overflow  in  size.   If  every host can
  1806.  
  1807. specify an uncontrolled and unlimited number of logical addresses
  1808.  
  1809. for  itself,  there  is  no  bound on the size of the translation
  1810.  
  1811. tables.  Since only a finite amount of memory will  be  available
  1812.  
  1813. for the translation tables, it is clearly not acceptable to allow
  1814.  
  1815. each host to specify an arbitray number of logical addresses  for
  1816.  
  1817. itself.
  1818.  
  1819.  
  1820.  
  1821.  
  1822. 5  Updating the Translation Tables
  1823.  
  1824.  
  1825.         We have examined two different procedures for setting  up
  1826.  
  1827. the  logical-to-physical  address  mappings,  and have found that
  1828.  
  1829. they both have problems.  Many of these problems can be resolved,
  1830.  
  1831. however,  by  a combination of the two procedures.  Let us define
  1832.  
  1833. two characteristics of  a  logical-to-physical  address  mapping,
  1834.  
  1835. which we will call "authorized" and "effective." A mapping from a
  1836.  
  1837. particular logical address to a particular  physical  address  is
  1838.  
  1839. "authorized"  if  a  host  which  connects to the network at that
  1840.  
  1841. physical  address  is  allowed  to  use  that  logical   address.
  1842.  
  1843. Authorizations  would  change  very  infrequently, and only after
  1844.  
  1845. considerable advance  planning.   Hence  it  is  appropriate  for
  1846.  
  1847. authorizations  to be determined (i.e., added and deleted) by the
  1848.  
  1849. NCC.  A mapping from a particular logical address to a particular
  1850.  
  1851.  
  1852.  
  1853.                               -30-
  1854.  
  1855.  
  1856. IEN-183                              Bolt Beranek and Newman Inc.
  1857.                                                     Eric C. Rosen
  1858.  
  1859.  
  1860.  
  1861. physical  address  would  be  said  to  be  "effective"  from the
  1862.  
  1863. perspective of a  given  source  node  if  (1)  that  mapping  is
  1864.  
  1865. authorized,  (2)  that  physical  address is accessible from that
  1866.  
  1867. source node, and (3) the host at that physical  address  has,  by
  1868.  
  1869. means  of  a  LAD  message,  declared itself to have that logical
  1870.  
  1871. address.  When a port goes down, all mappings to it  will  become
  1872.  
  1873. ineffective,  until  they  are made effective again by means of a
  1874.  
  1875. LAD message.  Logically addressed traffic will not  be  delivered
  1876.  
  1877. to  a particular physical address unless the mapping between that
  1878.  
  1879. logical address and that physical address is effective.   Changes
  1880.  
  1881. in  the  effectiveness  of a mapping will occur automatically, in
  1882.  
  1883. real-time, with no need for intervention by NCC personnel.   This
  1884.  
  1885. facilitates  multi-homing,  since  if  there  are  two authorized
  1886.  
  1887. mappings of a logical address to a physical address, and only one
  1888.  
  1889. is  effective,  that  one  can  be  chosen all the time until the
  1890.  
  1891. second becomes effective also.  It facilitates sharing  of  ports
  1892.  
  1893. (either  by  physical  or  by logical hosts), since each host has
  1894.  
  1895. control over the effectiveness (though not the authorization)  of
  1896.  
  1897. the  mappings  that affect it.  Carelessness by NCC personnel can
  1898.  
  1899. cause the wrong mappings to become authorized, but it  is  rather
  1900.  
  1901. unlikely  that  an  incorrectly  authorized  mapping could become
  1902.  
  1903. effective --  that  would  require  carefully  planned  malicious
  1904.  
  1905. intent.   Therefore,  such carelessness might prevent delivery of
  1906.  
  1907. data to some host, but would  not  cause  mis-delivery  of  data.
  1908.  
  1909.  
  1910.  
  1911.                               -31-
  1912.  
  1913.  
  1914. IEN-183                              Bolt Beranek and Newman Inc.
  1915.                                                     Eric C. Rosen
  1916.  
  1917.  
  1918.  
  1919. Carelessness  by site personnel, such as plugging a host into the
  1920.  
  1921. wrong port, would not  cause  mis-delivery  of  data,  since  the
  1922.  
  1923. mapping  of  that  host's logical address to that particular port
  1924.  
  1925. would not be authorized.  The possibility of spoofing is  greatly
  1926.  
  1927. reduced; since host A cannot pretend to be host B unless it is at
  1928.  
  1929. a port which is already authorized for host B.  The size  of  the
  1930.  
  1931. translation  table  cannot  increase without bound, since that is
  1932.  
  1933. determined by the number of authorized mappings,  and  cannot  be
  1934.  
  1935. increased  by  LAD  messages.   This  means,  of course, that the
  1936.  
  1937. network access protocol must be further modified so that  it  can
  1938.  
  1939. provide   positive  and  negative  acknowledgments  for  the  LAD
  1940.  
  1941. messages.  For each logical address that  a  host  specifies  for
  1942.  
  1943. itself  in  a  LAD  message,  the  network  must  return either a
  1944.  
  1945. positive   or   a   negative   acknowledgment.    The    positive
  1946.  
  1947. acknowledgment  would indicate that the mapping is authorized and
  1948.  
  1949. has become effective.  The negative acknowledgment would indicate
  1950.  
  1951. that the mapping is not authorized.
  1952.  
  1953.  
  1954.         It must be emphasized that the suggested  procedures  are
  1955.  
  1956. not  intended  to provide security in any very strict sense.  For
  1957.  
  1958. networks in which security  is  a  very  important  issue  (e.g.,
  1959.  
  1960. AUTODIN  II), further study of these issues should be carried out
  1961.  
  1962. by security experts.
  1963.  
  1964.  
  1965.         It should also be emphasized that these  procedures  will
  1966.  
  1967.  
  1968.  
  1969.                               -32-
  1970.  
  1971.  
  1972. IEN-183                              Bolt Beranek and Newman Inc.
  1973.                                                     Eric C. Rosen
  1974.  
  1975.  
  1976.  
  1977. allow  the  logical  addressing  scheme  to  continue to function
  1978.  
  1979. normally even if the NCC facilities are down.   It  does  require
  1980.  
  1981. centralized  intervention  to  add  or delete authorizations, and
  1982.  
  1983. this could not be done if the NCC were down.  For a fixed set  of
  1984.  
  1985. authorized  mappings,  however,  no  centralized  intervention is
  1986.  
  1987. required to determine the effectiveness of  the  mappings.   That
  1988.  
  1989. is, the real-time functionality and responsiveness of the logical
  1990.  
  1991. addressing scheme does not  depend  in  any  way  on  the  proper
  1992.  
  1993. functioning of the NCC.
  1994.  
  1995.  
  1996.         We have argued that the authorization of a mapping should
  1997.  
  1998. be  determined  by  the  NCC,  and the effectiveness of a mapping
  1999.  
  2000. should be determined by  the  network  node  which  contains  the
  2001.  
  2002. physical  address  (port)  to  which  the  mapping  is  made,  in
  2003.  
  2004. cooperation with the host that is connected  to  that  port.   We
  2005.  
  2006. have  also  argued  that  a full translation table (i.e., a table
  2007.  
  2008. containing all the effective mappings) should be stored  at  each
  2009.  
  2010. network  node  (or  more  precisely,  at  each network node which
  2011.  
  2012. serves as an access point for a host which can be either a source
  2013.  
  2014. or  a  destination  of logically addressed traffic).  However, we
  2015.  
  2016. have not yet discussed the algorithm by which  the  effectiveness
  2017.  
  2018. or  ineffectiveness  of  a particular logical-to-physical address
  2019.  
  2020. mapping is communicated to all network nodes.   We  turn  now  to
  2021.  
  2022. this  issue.   We  will  discuss  two  very different methods for
  2023.  
  2024.  
  2025.  
  2026.  
  2027.                               -33-
  2028.  
  2029.  
  2030. IEN-183                              Bolt Beranek and Newman Inc.
  2031.                                                     Eric C. Rosen
  2032.  
  2033.  
  2034.  
  2035. building up the translation tables at all nodes.
  2036.  
  2037.  
  2038.         The first method is based upon an extension  of  the  SPF
  2039.  
  2040. routing algorithm, wherein each logical address is treated like a
  2041.  
  2042. stub node.  In this method,  each  node  is  initialized  with  a
  2043.  
  2044. partial translation table.  This table contains a list of all the
  2045.  
  2046. logical addresses which are  AUTHORIZED  to  map  TO  that  node,
  2047.  
  2048. (i.e.,  all  the  logical  addresses which correspond to ports at
  2049.  
  2050. that node).  Each of these logical addresses is associated with a
  2051.  
  2052. particular  port  or ports at that node.  At initialization time,
  2053.  
  2054. each of these logical addresses is treated just as  if  it  is  a
  2055.  
  2056. neighboring  node  which  is  down,  and the node sends an update
  2057.  
  2058. (similar to a routing update) to all other nodes, indicating that
  2059.  
  2060. all  authorized  mappings to itself are ineffective.  When a host
  2061.  
  2062. comes  up  over  a  particular  port,  it  declares  its  logical
  2063.  
  2064. address(es)  by means of one or more LAD messages.  The node then
  2065.  
  2066. checks its table of authorized mappings, and acknowledges to  the
  2067.  
  2068. host  (either  positively  or  negatively)  each  logical address
  2069.  
  2070. mentioned in the LAD message.   Whenever  a  logical  address  is
  2071.  
  2072. positively  acknowledged, it becomes effective, and the node must
  2073.  
  2074. broadcast an update to all other nodes declaring that mapping  to
  2075.  
  2076. be  effective.  Whenever a host declares (via a LAD message) that
  2077.  
  2078. it no longer wants to be  addressable  by  a  particular  logical
  2079.  
  2080. address, an update must be generated declaring that mapping to be
  2081.  
  2082.  
  2083.  
  2084.  
  2085.                               -34-
  2086.  
  2087.  
  2088. IEN-183                              Bolt Beranek and Newman Inc.
  2089.                                                     Eric C. Rosen
  2090.  
  2091.  
  2092.  
  2093. ineffective.  Whenever a port goes down,  all  logical  addresses
  2094.  
  2095. mapping  to  it become ineffective, and an update indicating this
  2096.  
  2097. must be broadcast.  If the protocol  used  to  disseminate  these
  2098.  
  2099. updates  is  the  same  as  the  protocol  used in the ARPANET to
  2100.  
  2101. disseminate the updates of the SPF routing  algorithm,  then  all
  2102.  
  2103. nodes  will  be  able to build dynamically an up-to-date table of
  2104.  
  2105. effective mappings, just as the routing updates  enable  them  to
  2106.  
  2107. build an up-to-date topology table.  (The procedure used to build
  2108.  
  2109. the topology tables is described in [1].  The  updating  protocol
  2110.  
  2111. is  described  in [2] and [3].) In effect, this procedure extends
  2112.  
  2113. the routing algorithm to treat the hosts (or more precisely,  the
  2114.  
  2115. mappings  of  logical  addresses  to  physical addresses) as stub
  2116.  
  2117. nodes, and the ports as lines, except  that  there  is  no  delay
  2118.  
  2119. associated with a port, but only an up/down status.
  2120.  
  2121.  
  2122.         This procedure is attractive from a conceptual  point  of
  2123.  
  2124. view,  but it is not really cost-effective.  That is, it seems to
  2125.  
  2126. be too expensive to be practical.  One reason is that it is  hard
  2127.  
  2128. to  place  a  bound  on  the  size  of the updates.  The updating
  2129.  
  2130. protocol of the ARPANET routing  algorithm  is  quite  efficient,
  2131.  
  2132. because  the  updates  are  so small.  The maximum update size is
  2133.  
  2134. only 216 bits (from  a  node  with  5  neighbors).   The  logical
  2135.  
  2136. addressing  updates might be much longer, since there is no limit
  2137.  
  2138. on the number of logical addresses that may map to a given  node.
  2139.  
  2140.  
  2141.  
  2142.  
  2143.                               -35-
  2144.  
  2145.  
  2146. IEN-183                              Bolt Beranek and Newman Inc.
  2147.                                                     Eric C. Rosen
  2148.  
  2149.  
  2150.  
  2151. The  updates  would  also have to be sent periodically, even when
  2152.  
  2153. there in no change in state.  These  features  are  necessary  to
  2154.  
  2155. ensure reliability in the face of such events as partitions, node
  2156.  
  2157. crashes, updates received out of order, etc.  With no restriction
  2158.  
  2159. on  the number of logical addresses which can map to a given node
  2160.  
  2161. (and it seems unwise to build in such a restriction), there is no
  2162.  
  2163. restriction  on  update size, and hence no bound on the bandwidth
  2164.  
  2165. needed for updating, or on the extra delay which may  be  imposed
  2166.  
  2167. on data packets due to the need to transmit the updates.
  2168.  
  2169.  
  2170.         The updating protocol which  was  designed  for  the  SPF
  2171.  
  2172. routing  algorithm  was  designed to get the updates to all nodes
  2173.  
  2174. very quickly, and with 100% reliability,  even  in  the  face  of
  2175.  
  2176. various  types  of  network  failures.   This  extreme  speed and
  2177.  
  2178. reliability is necessary for routing  updates,  since  rapid  and
  2179.  
  2180. reliable  updating  of  the routing tables is necessary to ensure
  2181.  
  2182. the integrity of the network.  Routing failures, after  all,  can
  2183.  
  2184. make  the  network completely unusable, and can be very difficult
  2185.  
  2186. to recover from, since most recovery  techniques  depend  on  the
  2187.  
  2188. NCC's  ability  to  communicate  with  the  nodes,  which in turn
  2189.  
  2190. depends  upon   the   integrity   of   the   routing   algorithm.
  2191.  
  2192. Fortunately,  the  protocol  used  for  disseminating the logical
  2193.  
  2194. addressing updates does not need all  the  functionality  of  the
  2195.  
  2196. updating  protocol  used  for routing, since the integrity of the
  2197.  
  2198.  
  2199.  
  2200.  
  2201.                               -36-
  2202.  
  2203.  
  2204. IEN-183                              Bolt Beranek and Newman Inc.
  2205.                                                     Eric C. Rosen
  2206.  
  2207.  
  2208.  
  2209. logical addressing  scheme  is  not  quite  as  critical  as  the
  2210.  
  2211. integrity  of  the  routing  algorithm.  This enables us to use a
  2212.  
  2213. simpler and less expensive method of maintaining the  translation
  2214.  
  2215. tables, which we will now discuss.
  2216.  
  2217.  
  2218.         In this second method, each node is  initialized  with  a
  2219.  
  2220. translation  table  containing ALL the authorized mappings.  This
  2221.  
  2222. table would have an entry for every logical address that  can  be
  2223.  
  2224. used in the network.  Each logical address would be associated in
  2225.  
  2226. the table with all the physical addresses  to  which  it  has  an
  2227.  
  2228. authorized  mapping.   Associated  with  each  of  these physical
  2229.  
  2230. addresses would be a Boolean  variable  indicating  whether  that
  2231.  
  2232. particular  logical-to-physical  address  mapping is effective or
  2233.  
  2234. ineffective.  At  initialization  time  a  node  would  mark  all
  2235.  
  2236. mappings  to  itself  as  INEFFECTIVE,  and all mappings to other
  2237.  
  2238. nodes as EFFECTIVE.  Whenever a host declares itself, via  a  LAD
  2239.  
  2240. message, to have a certain logical address, the node looks in the
  2241.  
  2242. translation table to see if that mapping is authorized.  (This is
  2243.  
  2244. just an ordinary table look-up, indexed off the logical address.)
  2245.  
  2246. If not, a negative acknowledgment is sent to the  host.   If  the
  2247.  
  2248. mapping  is  authorized,  a positive acknowledgement is sent, and
  2249.  
  2250. the entry in the translation table is marked EFFECTIVE.  Whenever
  2251.  
  2252. a  port  goes  down,  the node marks all mappings to that port as
  2253.  
  2254. INEFFECTIVE.  Of course, this also requires a "reverse" search of
  2255.  
  2256.  
  2257.  
  2258.  
  2259.                               -37-
  2260.  
  2261.  
  2262. IEN-183                              Bolt Beranek and Newman Inc.
  2263.                                                     Eric C. Rosen
  2264.  
  2265.  
  2266.  
  2267. the  table  (i.e.,  a  search  based  on  a physical, rather than
  2268.  
  2269. logical address).  To make this more efficient, when the  initial
  2270.  
  2271. reverse  search is done at initialization time, the node can save
  2272.  
  2273. a list of pointers into  the  translation  table.   Each  pointer
  2274.  
  2275. would correspond to a physical address entry for that node.  If a
  2276.  
  2277. separate table of pointers is kept for each port, the  node  will
  2278.  
  2279. be able to find in a very efficient manner entries which map to a
  2280.  
  2281. particular port.  Using this methodology, each node's translation
  2282.  
  2283. table  will correctly indicate, for each of the logical addresses
  2284.  
  2285. that map to IT, whether or not that mapping  is  effective.   (Of
  2286.  
  2287. course,  these  pointers would have to be adjusted whenever table
  2288.  
  2289. insertions or deletions are made.)
  2290.  
  2291.  
  2292.         When a source host sends a logically  addressed  datagram
  2293.  
  2294. packet  into  the  network,  the  source  node  will  search  the
  2295.  
  2296. translation table for  the  correct  mapping.   If  that  logical
  2297.  
  2298. address  cannot  be  found,  i.e.,  its use is not authorized, an
  2299.  
  2300. error message indicating this fact  should  be  returned  to  the
  2301.  
  2302. host,  and  the  packet  discarded.   If  that logical address is
  2303.  
  2304. found, but all the corresponding physical  addresses  are  either
  2305.  
  2306. marked  INEFFECTIVE,  or  else  are unreachable (according to the
  2307.  
  2308. routing algorithm), then the packet should be discarded, and  the
  2309.  
  2310. host  informed  of  that fact.  If some of the physical addresses
  2311.  
  2312. are both reachable (according to routing) and  marked  EFFECTIVE,
  2313.  
  2314.  
  2315.  
  2316.  
  2317.                               -38-
  2318.  
  2319.  
  2320. IEN-183                              Bolt Beranek and Newman Inc.
  2321.                                                     Eric C. Rosen
  2322.  
  2323.  
  2324.  
  2325. then  one  should  be  chosen,  according to some set of criteria
  2326.  
  2327. (perhaps one of those which  we  discussed  above).   The  chosen
  2328.  
  2329. physical  address  should  be  placed in the packet header, along
  2330.  
  2331. with the logical address.  The packet should then be forwarded to
  2332.  
  2333. its  destination; in doing the forwarding, tandem nodes will look
  2334.  
  2335. only  at  the  physical  address.   According  to  the  procedure
  2336.  
  2337. described in the previous paragraph, all mappings to REMOTE ports
  2338.  
  2339. will be initially marked EFFECTIVE.  To see how such mappings can
  2340.  
  2341. get marked INEFFECTIVE, we must see what happens when a logically
  2342.  
  2343. addressed packet reaches its destination node.
  2344.  
  2345.  
  2346.         When a logically addressed datagram  packet  reaches  its
  2347.  
  2348. destination  node,  the node looks up that logical address in its
  2349.  
  2350. translation table.  It is possible, of course, that that  logical
  2351.  
  2352. address  will  not be found at all, or that it will be found, but
  2353.  
  2354. that there will be  no  authorized  mapping  to  this  particular
  2355.  
  2356. destination  node.  This would indicate some sort of disagreement
  2357.  
  2358. between the translation tables  at  the  source  and  destination
  2359.  
  2360. nodes.   There  are  three  possible causes of this disagreement:
  2361.  
  2362. (1) NCC error in setting up the translation tables, (2)  deletion
  2363.  
  2364. of  the  authorization  for that particular logical address while
  2365.  
  2366. the packet was in transit, or (3) a  race  condition,  whereby  a
  2367.  
  2368. translation  table  update authorizing the new logical address is
  2369.  
  2370. taking place, but the update has  not  reached  that  destination
  2371.  
  2372.  
  2373.  
  2374.  
  2375.                               -39-
  2376.  
  2377.  
  2378. IEN-183                              Bolt Beranek and Newman Inc.
  2379.                                                     Eric C. Rosen
  2380.  
  2381.  
  2382.  
  2383. node  yet.   In  any  case,  the  data packet should be discarded
  2384.  
  2385. without delivery, and an error message should be sent to the  NCC
  2386.  
  2387. indicating  receipt  of  a  packet  with  an unauthorized logical
  2388.  
  2389. address.  This will alert NCC personnel to a possible error.   If
  2390.  
  2391. the  authorization for that logical address was deleted while the
  2392.  
  2393. packet was in transit, however, then the NCC need  not  take  any
  2394.  
  2395. action;  having the destination node simply discard the packet is
  2396.  
  2397. the correct procedure.  If, on the other hand,  that  logical-to-
  2398.  
  2399. physical  mapping is really authorized, but the update making the
  2400.  
  2401. authorization has not yet reached the destination node,  then  we
  2402.  
  2403. want  to  take  the  same  action  as  we would take for a packet
  2404.  
  2405. delivered according to an  authorized  but  ineffective  mapping.
  2406.  
  2407. This action shall be described in the next paragraph.
  2408.  
  2409.  
  2410.         Suppose that, upon looking up the logical address in  the
  2411.  
  2412. translation  table,  the destination node does find an authorized
  2413.  
  2414. mapping to itself, but that mapping is marked ineffective.   Then
  2415.  
  2416. there  are  two  actions  to take.  The first action is to try to
  2417.  
  2418. re-address and then re-send the message.   Of  course,  this  can
  2419.  
  2420. only  be  done if the destination logical address is multi-homed,
  2421.  
  2422. and at least one  of  the  corresponding  physical  addresses  is
  2423.  
  2424. effective.   If  this  is  not  the  case,  the  packet  must  be
  2425.  
  2426. discarded.  The second action is to send a special  message  back
  2427.  
  2428. to  the  source  node of that datagram packet.  We will call this
  2429.  
  2430.  
  2431.  
  2432.  
  2433.                               -40-
  2434.  
  2435.  
  2436. IEN-183                              Bolt Beranek and Newman Inc.
  2437.                                                     Eric C. Rosen
  2438.  
  2439.  
  2440.  
  2441. message a "DNA message" (for "Destination Not Accessible").   The
  2442.  
  2443. DNA  message will specify that the particular logical-to-physical
  2444.  
  2445. address mapping used for that packet is not an EFFECTIVE mapping.
  2446.  
  2447. The  DNA  message  should  also  be sent in response to datagrams
  2448.  
  2449. which  appear  to  have  unauthorized  mappings   (see   previous
  2450.  
  2451. paragraph).   For  reliability, each logically addressed datagram
  2452.  
  2453. must carry the physical address of its source node (though not of
  2454.  
  2455. its  source  host),  so  that  the  DNA message can be physically
  2456.  
  2457. addressed to the source node.  It is not enough  for  the  packet
  2458.  
  2459. simply  to  carry the logical address of its source host, for two
  2460.  
  2461. reasons.  The first reason is that if the source host  is  multi-
  2462.  
  2463. homed,  the  destination node will not know which source node the
  2464.  
  2465. packet came from, and hence will not know where to send  the  DNA
  2466.  
  2467. message.   The  second  reason  has  to do with the fact that one
  2468.  
  2469. situation in which DNA messages  may  have  to  be  sent  is  the
  2470.  
  2471. situation  in which the translation table at the destination node
  2472.  
  2473. has been set up erroneously.  In this case, we  do  not  want  to
  2474.  
  2475. have  to rely on the integrity of the translation table to ensure
  2476.  
  2477. proper delivery of the DNA message.
  2478.  
  2479.  
  2480.         When a source node receives a DNA message indicating that
  2481.  
  2482. a  certain logical-to-physical address mapping is ineffective, it
  2483.  
  2484. must find the proper entry in its  translation  table,  and  mark
  2485.  
  2486. that  mapping  as ineffective.  Henceforth, incoming packets with
  2487.  
  2488.  
  2489.  
  2490.  
  2491.                               -41-
  2492.  
  2493.  
  2494. IEN-183                              Bolt Beranek and Newman Inc.
  2495.                                                     Eric C. Rosen
  2496.  
  2497.  
  2498.  
  2499. that  particular  logical  address  will  not  be  sent  to  that
  2500.  
  2501. particular  physical  address.   If the logical address is multi-
  2502.  
  2503. homed, packets will be sent to one or more of the other  physical
  2504.  
  2505. addresses,  unless  all the mappings for that logical address are
  2506.  
  2507. ineffective.  If this is  the  case,  packets  for  that  logical
  2508.  
  2509. address  will  be discarded by the source node, which should also
  2510.  
  2511. return some sort of negative acknowledgment to the  source  host.
  2512.  
  2513. We  see  then  that the DNA messages provide a feedback mechanism
  2514.  
  2515. which enables a source node to tell when a mapping  to  a  remote
  2516.  
  2517. port  is ineffective.  The source node has no way to tell whether
  2518.  
  2519. this is the case, until it sends a packet to  that  port.   After
  2520.  
  2521. sending the packet, it will be explicitly told by the DNA message
  2522.  
  2523. if the mapping is ineffective.  If it receives no DNA message, it
  2524.  
  2525. assumes that the mapping is effective.  This may mean, of course,
  2526.  
  2527. that some  logically  addressed  packets  are  sent  to  a  wrong
  2528.  
  2529. physical  address.  However, if there are other possible physical
  2530.  
  2531. addresses corresponding to that logical address, and the original
  2532.  
  2533. destination  node  has  one  of  those  other  mappings marked as
  2534.  
  2535. effective, the packet will be re-addressed and  re-delivered,  so
  2536.  
  2537. there  is no data loss.  Note that there are two possible reasons
  2538.  
  2539. why  a  given  logical-to-physical  address  mapping   might   be
  2540.  
  2541. ineffective:   (1) the physical port might not be operational, or
  2542.  
  2543. (2) the host at that physical address  might  not  have  declared
  2544.  
  2545. itself  addressable  with  that logical address.  If desired, the
  2546.  
  2547.  
  2548.  
  2549.                               -42-
  2550.  
  2551.  
  2552. IEN-183                              Bolt Beranek and Newman Inc.
  2553.                                                     Eric C. Rosen
  2554.  
  2555.  
  2556.  
  2557. DNA message can indicate which of these two reasons is applicable
  2558.  
  2559. in  the  particular case in hand.  This information can be stored
  2560.  
  2561. in the source node's translation table, and passed on  to  source
  2562.  
  2563. hosts  which  try  to  use  a  logical  address for which all the
  2564.  
  2565. mappings are ineffective.
  2566.  
  2567.  
  2568.         This procedure enables all  nodes  to  find  out  when  a
  2569.  
  2570. particular  authorized  mapping  is  ineffective.  We also need a
  2571.  
  2572. procedure to enable the nodes to find  out  when  an  ineffective
  2573.  
  2574. mapping becomes effective again (i.e., a port comes back up, or a
  2575.  
  2576. new LAD message is received at some remote site).  A  simple  but
  2577.  
  2578. effective  method  is the following.  At periodic intervals (say,
  2579.  
  2580. every 5 or 10 minutes) each node will go through its  translation
  2581.  
  2582. table  and  mark  ALL the entries which map to REMOTE ports to be
  2583.  
  2584. effective.  (Entries which map to  local  ports  will  be  marked
  2585.  
  2586. effective   or   ineffective   according  to  procedures  already
  2587.  
  2588. discussed.   The  current  procedure  will  not  apply  to   such
  2589.  
  2590. entries.)  This  enables  mappings to be used again shortly after
  2591.  
  2592. they become effective.  Of course, this  scheme  will  result  in
  2593.  
  2594. some packets being sent to the wrong physical address.  When that
  2595.  
  2596. happens, however, a DNA message will be  elicited,  causing  that
  2597.  
  2598. mapping  to  be  marked  ineffective  again  in that source node.
  2599.  
  2600. Furthermore, this scheme does  not  cause  any  unnecessary  data
  2601.  
  2602. loss,  since  packets  sent to the wrong physical address will be
  2603.  
  2604.  
  2605.  
  2606.  
  2607.                               -43-
  2608.  
  2609.  
  2610. IEN-183                              Bolt Beranek and Newman Inc.
  2611.                                                     Eric C. Rosen
  2612.  
  2613.  
  2614.  
  2615. re-addressed and re-delivered, if possible.
  2616.  
  2617.  
  2618.         Although this method requires all nodes  to  periodically
  2619.  
  2620. mark  all  mappings to remote ports effective, it is important to
  2621.  
  2622. understand that it  does  not  require  any  time-synchronization
  2623.  
  2624. among  the  various  nodes.  Also, there is no reason why all the
  2625.  
  2626. mappings have to be marked  effective  at  the  same  time.   For
  2627.  
  2628. example,  if  the translation table contains 600 mappings, rather
  2629.  
  2630. than marking all of them effective every 10 minutes,  it  may  be
  2631.  
  2632. more efficient to mark one mapping effective each second, thereby
  2633.  
  2634. cycling through the table  every  ten  minutes  (though  if  this
  2635.  
  2636. method  is  used,  it must take account of table compressions and
  2637.  
  2638. expansions  which  may  occur  as  the  NCC   adds   or   deletes
  2639.  
  2640. authorizations).
  2641.  
  2642.  
  2643.         There is also an issue as to the exact methodology to  be
  2644.  
  2645. used  to  send  the  DNA  messages.  The simplest method is for a
  2646.  
  2647. destination node to send a DNA message to the source node of each
  2648.  
  2649. packet which arrives as the result of an ineffective mapping.  If
  2650.  
  2651. this method is used, there is no need to use a reliable transport
  2652.  
  2653. protocol in sending the DNA messages.  If, for some reason, a DNA
  2654.  
  2655. message fails to get through to the  source  node,  more  packets
  2656.  
  2657. will  arrive  at  the  wrong  destination  node, causing more DNA
  2658.  
  2659. messages to be sent, until one  of  them  finally  gets  through.
  2660.  
  2661. This method, however, might generate a virtually unbounded number
  2662.  
  2663.  
  2664.  
  2665.                               -44-
  2666.  
  2667.  
  2668. IEN-183                              Bolt Beranek and Newman Inc.
  2669.                                                     Eric C. Rosen
  2670.  
  2671.  
  2672.  
  2673. of DNA messages, particularly in pure datagram networks  with  no
  2674.  
  2675. flow  or  congestion  control.   This in turn might contribute to
  2676.  
  2677. network congestion.  In order  to  gain  better  control  of  the
  2678.  
  2679. throughput  due  to  DNA  messages,  one could implement a scheme
  2680.  
  2681. which ensures that only  one  DNA  per  ineffective  mapping  per
  2682.  
  2683. source  node  can  be  sent within a certain time interval.  This
  2684.  
  2685. scheme would have a significant cost  in  table  space,  however.
  2686.  
  2687. Also,  it  would require some sort of reliable transport protocol
  2688.  
  2689. (e.g., positive acknowledgments from  the  source  node  when  it
  2690.  
  2691. receives the DNA message) to protect against the case where a DNA
  2692.  
  2693. message is  lost  in  transit.   This  issue  would  have  to  be
  2694.  
  2695. carefully considered before any implementation is done.
  2696.  
  2697.  
  2698.         The procedure to follow with virtual circuit  traffic  is
  2699.  
  2700. very  similar.   In  the  ARPANET,  a  single  virtual circuit or
  2701.  
  2702. "connection"  is  individuated  by  the  source  and  destination
  2703.  
  2704. physical  addresses.   The  user  takes  no  part in setting up a
  2705.  
  2706. connection; whenever a user sends a packet to the  network  which
  2707.  
  2708. is not a datagram, the network checks to see if a connection from
  2709.  
  2710. the user's physical address to the destination  physical  address
  2711.  
  2712. that  he  specified  is  already  in existence.  If not, the IMPs
  2713.  
  2714. automatically run a protocol to set up such a  connection.   With
  2715.  
  2716. logical  addressing,  we  would  want to redefine the notion of a
  2717.  
  2718. connection so that connections are  individuated  by  source  and
  2719.  
  2720.  
  2721.  
  2722.  
  2723.                               -45-
  2724.  
  2725.  
  2726. IEN-183                              Bolt Beranek and Newman Inc.
  2727.                                                     Eric C. Rosen
  2728.  
  2729.  
  2730.  
  2731. destination   LOGICAL  address,  rather  than  physical  address.
  2732.  
  2733. However, translation would be done only at connection setup time.
  2734.  
  2735. Thereafter,  all  virtual  circuit  packets  received  by a given
  2736.  
  2737. source node with the same source logical address and  destination
  2738.  
  2739. logical  address  would  be  sent  on  the same connection.  If a
  2740.  
  2741. destination node  receives  a  connection  setup  message  for  a
  2742.  
  2743. logical  address whose mapping is ineffective, it will refuse the
  2744.  
  2745. connection, just as  it  would  refuse  a  setup  message  for  a
  2746.  
  2747. physical  connection  to  a  dead  port.   When  the  source node
  2748.  
  2749. receives the  refusal  message,  it  will  mark  that  particular
  2750.  
  2751. logical-to-physical  mapping  as ineffective.  If the destination
  2752.  
  2753. logical address is multi-homed, the source node  can  attempt  to
  2754.  
  2755. set  up  the  connection  again,  but  with  a different physical
  2756.  
  2757. destination address.  If a mapping becomes  ineffective  after  a
  2758.  
  2759. connection  has  already  been  set up, the destination node will
  2760.  
  2761. take action to reset the connection, also  informing  the  source
  2762.  
  2763. node that the mapping is now ineffective.
  2764.  
  2765.  
  2766.         Note that logically  addressed  virtual  circuit  packets
  2767.  
  2768. need  not  carry in their headers the logical addresses of either
  2769.  
  2770. the source or destination hosts, since that  information  can  be
  2771.  
  2772. stored  in  the  connections tables at the source and destination
  2773.  
  2774. nodes.  Of course, all  packets  sent  on  a  particular  logical
  2775.  
  2776. connection  will  go  to  the  same  physical  destination  port.
  2777.  
  2778.  
  2779.  
  2780.  
  2781.                               -46-
  2782.  
  2783.  
  2784. IEN-183                              Bolt Beranek and Newman Inc.
  2785.                                                     Eric C. Rosen
  2786.  
  2787.  
  2788.  
  2789. However, if the destination node  or  port  goes  down,  and  the
  2790.  
  2791. destination    host   is   multi-homed,   the   above   procedure
  2792.  
  2793. automatically ensures that a new connection will be opened to one
  2794.  
  2795. of  the  ports  which  is not down.  Since the ARPANET connection
  2796.  
  2797. protocol is transparent to the user, the  user  need  never  know
  2798.  
  2799. that this has happened.
  2800.  
  2801.  
  2802.         It is interesting to compare this procedure (based on DNA
  2803.  
  2804. messages)  with  the previously discussed procedures (based on an
  2805.  
  2806. updating protocol similar  to  that  used  for  the  SPF  routing
  2807.  
  2808. algorithm).   The  latter  procedure  would ensure that all nodes
  2809.  
  2810. always agree (except during some very short transient period)  on
  2811.  
  2812. precisely  which  mappings  are  effective  and  which  are  not.
  2813.  
  2814. Mappings would be marked effective  (or  ineffective)  almost  as
  2815.  
  2816. soon  as  they  become so.  There would be no need for the source
  2817.  
  2818. nodes to probe the destination nodes by sending data  packets  to
  2819.  
  2820. possibly  incorrect  physical  addresses.   The  procedure we are
  2821.  
  2822. recommending does not have these features.   In  the  recommended
  2823.  
  2824. procedure,   different   nodes'   translation  tables  would  not
  2825.  
  2826. necessarily be in agreement all the time as to which mappings are
  2827.  
  2828. or  are  not  effective,  and  probing  is necessary.  This is an
  2829.  
  2830. acceptable situation though, since  the  sort  of  universal  and
  2831.  
  2832. immediate  agreement  which  is  necessary  to  ensure the proper
  2833.  
  2834. functioning of a routing algorithm just is not needed  to  ensure
  2835.  
  2836.  
  2837.  
  2838.  
  2839.                               -47-
  2840.  
  2841.  
  2842. IEN-183                              Bolt Beranek and Newman Inc.
  2843.                                                     Eric C. Rosen
  2844.  
  2845.  
  2846.  
  2847. the   proper   functioning  of  the  logical  addressing  scheme.
  2848.  
  2849. However, THE  LACK  OF  UNIVERSAL  AGREEMENT  DOES  REQUIRE  THAT
  2850.  
  2851. TRANSLATION  BE  DONE  AT  SOURCE NODES RATHER THAN TANDEM NODES,
  2852.  
  2853. since the DNA-based procedure, while designed to keep the  tables
  2854.  
  2855. at  source  nodes  up-to-date, will not necessarily have the same
  2856.  
  2857. effect at tandem nodes.  (That is, DNA messages are sent  to  the
  2858.  
  2859. source nodes, NOT to tandem nodes.)
  2860.  
  2861.  
  2862.         There is  only  one  situation  in  which  re-translation
  2863.  
  2864. should  be  done  at  the  tandem  nodes.   Suppose  a  logically
  2865.  
  2866. addressed packet arrives at a tandem node, and that  node,  after
  2867.  
  2868. checking  its  routing  table, sees that the physical destination
  2869.  
  2870. address of that packet  is  unreachable.   If  the  packet  is  a
  2871.  
  2872. virtual  circuit  packet,  or  the tandem node does not implement
  2873.  
  2874. logical addressing (i.e., does not contain a translation  table),
  2875.  
  2876. the  packet  must  simply  be  discarded.  But if the packet is a
  2877.  
  2878. datagram, and the tandem node does have a translation  table,  it
  2879.  
  2880. should  re-translate  the  destination  logical  address, and re-
  2881.  
  2882. address  the  packet.   This  procedure  can  help   to   prevent
  2883.  
  2884. unnecessary  data  loss.   Note that this tandem node translation
  2885.  
  2886. would happen only rarely, and only  in  situations  in  which  it
  2887.  
  2888. could  not  serve  to  defeat the criteria according to which the
  2889.  
  2890. source node translation was done.
  2891.  
  2892.  
  2893.         It should be noted that, with the  recommended  procedure
  2894.  
  2895.  
  2896.  
  2897.                               -48-
  2898.  
  2899.  
  2900. IEN-183                              Bolt Beranek and Newman Inc.
  2901.                                                     Eric C. Rosen
  2902.  
  2903.  
  2904.  
  2905. (unlike  the  alternative),  the size of the translation table at
  2906.  
  2907. each node is a function only of  the  number  of  authorizations.
  2908.  
  2909. That is, only changes in the authorizations require insertions or
  2910.  
  2911. deletions to the table.  This justifies our previous  claim  that
  2912.  
  2913. insertions and deletions are relatively rare events.
  2914.  
  2915.  
  2916.         It should also  be  pointed  out  that  nothing  in  this
  2917.  
  2918. procedure  prevents a computer from being multi-homed to a single
  2919.  
  2920. node.
  2921.  
  2922.  
  2923.  
  2924.  
  2925. 6  Operational and Implementation Considerations
  2926.  
  2927.  
  2928.         This procedure requires each network node to  maintain  a
  2929.  
  2930. full   table  of  authorized  mappings.   There  are  operational
  2931.  
  2932. advantages to requiring all nodes  to  have  precisely  the  same
  2933.  
  2934. translation  table;  this simplifies the process whereby one node
  2935.  
  2936. can be reloaded from another in case of failure, and reduces  the
  2937.  
  2938. amount  of  site-dependent information that must be maintained in
  2939.  
  2940. the nodes.  (In  general,  the  more  site-dependent  information
  2941.  
  2942. there  is,  the  larger the Mean Time to Repair will be.) We have
  2943.  
  2944. not spoken explicitly of the way in which NCC  personnel  add  or
  2945.  
  2946. delete  authorizations.   This will require some protocol between
  2947.  
  2948. the nodes and the NCC.  This protocol would be  similar  in  some
  2949.  
  2950. ways  to  the  protocol  used  to  broadcast  software patches or
  2951.  
  2952.  
  2953.  
  2954.  
  2955.                               -49-
  2956.  
  2957.  
  2958. IEN-183                              Bolt Beranek and Newman Inc.
  2959.                                                     Eric C. Rosen
  2960.  
  2961.  
  2962.  
  2963. packages to the nodes.  However, since we want to be able to make
  2964.  
  2965. incremental  changes  to  the tables (rather than broadcasting an
  2966.  
  2967. entire new table each time a change must be made), the node  will
  2968.  
  2969. have  to  contain  routines  to add to or delete from the tables.
  2970.  
  2971. The node may have  to  inhibit  interrupts  while  modifying  its
  2972.  
  2973. table,  so  that no translations are done while the table is in a
  2974.  
  2975. state of flux.  Also, no reloads may be done from  a  node  whose
  2976.  
  2977. table  is  in  a  state of flux.  These last two restrictions are
  2978.  
  2979. needed to prevent race conditions; these restrictions are  easily
  2980.  
  2981. implemented.
  2982.  
  2983.  
  2984.         When  the  NCC  makes  a   change   to   the   table   of
  2985.  
  2986. authorizations,  it  will  want  to receive some sort of positive
  2987.  
  2988. feedback, indicating that the change has indeed been  made.   One
  2989.  
  2990. method of doing this is to associate a sequence number with every
  2991.  
  2992. "add" or "delete" command.  Each node could  periodically  report
  2993.  
  2994. to  the NCC the sequence number of the last command that it fully
  2995.  
  2996. executed, and an entry could  appear  in  the  log  whenever  the
  2997.  
  2998. sequence  number  is other than expected.  If the nodes refuse to
  2999.  
  3000. execute commands which are received out of sequence,  this  would
  3001.  
  3002. enable  the  NCC  to determine whether each node has received the
  3003.  
  3004. correct sequence of commands.
  3005.  
  3006.  
  3007.         If memory considerations make it impossible for each node
  3008.  
  3009. to  contain a table of ALL authorized mappings, it is possible to
  3010.  
  3011.  
  3012.  
  3013.                               -50-
  3014.  
  3015.  
  3016. IEN-183                              Bolt Beranek and Newman Inc.
  3017.                                                     Eric C. Rosen
  3018.  
  3019.  
  3020.  
  3021. get by with a shorter  table.   Strictly  speaking,  each  node's
  3022.  
  3023. table  need  contain only the logical addresses which map to that
  3024.  
  3025. node itself, PLUS those logical addresses which  the  node's  own
  3026.  
  3027. local  hosts  are  allowed  to use.  While this smaller table may
  3028.  
  3029. take less memory, it would,  however,  increase  the  operational
  3030.  
  3031. difficulties of table maintenance.  We have not yet said anything
  3032.  
  3033. explicit about the format of a logical address.  We recommend use
  3034.  
  3035. of  a 16-bit field for coding the logical addresses.  This should
  3036.  
  3037. be enough to prevent  bit-coding  limitations  from  placing  any
  3038.  
  3039. restriction on network growth.  The only other information needed
  3040.  
  3041. in the translation table is (1) destination node physical address
  3042.  
  3043. (8    bits    should    suffice),    (2)    one   bit   for   the
  3044.  
  3045. effective/ineffective variable, (3) enough bits to code the  port
  3046.  
  3047. numbers,  and  (4)  enough  bits  to code any variables needed to
  3048.  
  3049. implement the selection  criteria  used  for  multi-homed  hosts.
  3050.  
  3051. This  should  not  take  more  than two or three 16-bit words per
  3052.  
  3053. entry.  If space is a problem, it  is  possible  to  shorten  the
  3054.  
  3055. tables somewhat by deleting the port numbers.  Strictly speaking,
  3056.  
  3057. port numbers are only needed by the destination nodes, and  hence
  3058.  
  3059. need  not  appear  in  each node's copy of the translation table.
  3060.  
  3061. However, eliminating the  port  numbers  from  the  common  table
  3062.  
  3063. increases  the amount of site-specific information in the tables,
  3064.  
  3065. which is a disadvantage in itself.
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.                               -51-
  3072.  
  3073.  
  3074. IEN-183                              Bolt Beranek and Newman Inc.
  3075.                                                     Eric C. Rosen
  3076.  
  3077.  
  3078.  
  3079.         It goes without saying that the use of logical addressing
  3080.  
  3081. has  implications  for  the  network  access  protocol.   We have
  3082.  
  3083. already discussed one aspect  of  the  network  access  protocol,
  3084.  
  3085. viz.,  the  need  for the host to send LAD messages to the source
  3086.  
  3087. node, and the need for positive and negative  acknowledgments  to
  3088.  
  3089. be  returned  to  the host.  A LAD message from a particular port
  3090.  
  3091. contains a list of logical addresses, with an indication for each
  3092.  
  3093. one  as  to  whether  the  host wants the mapping of that logical
  3094.  
  3095. address to that port  to  be  effective  or  not.   When  a  host
  3096.  
  3097. declares a mapping to be ineffective, the source node must always
  3098.  
  3099. return a positive  acknowledgment,  and  must  mark  the  mapping
  3100.  
  3101. ineffective in its translation table.  However, if the mapping is
  3102.  
  3103. not authorized (i.e., not in the translation table),  the  source
  3104.  
  3105. node  should also return a warning to the source host, since host
  3106.  
  3107. error is likely.  When a host declares a mapping to be effective,
  3108.  
  3109. the   node   will   return   either   a   positive   or  negative
  3110.  
  3111. acknowledgment, depending upon whether the mapping is  authorized
  3112.  
  3113. or  not.   When  a  host  declares  an  authorized  mapping to be
  3114.  
  3115. effective, the node must mark it so.  The host should be  allowed
  3116.  
  3117. to  send  LAD  messages  to the node at any time, and they should
  3118.  
  3119. take effect immediately.
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.                               -52-
  3130.  
  3131.  
  3132. IEN-183                              Bolt Beranek and Newman Inc.
  3133.                                                     Eric C. Rosen
  3134.  
  3135.  
  3136.  
  3137. 7  Network Access Protocol Implications
  3138.  
  3139.  
  3140.         The  use  of  a  logical  addressing  scheme   also   has
  3141.  
  3142. implications  on  the part of the network access protocol that is
  3143.  
  3144. used for ordinary data transport.  When a source  host  passes  a
  3145.  
  3146. message  to  its  source  node,  the message leader must indicate
  3147.  
  3148. whether logical or physical addressing is desired  (assuming  the
  3149.  
  3150. network  allows  both).   If  logical  addressing is desired, the
  3151.  
  3152. destination logical address must be indicated.  The  source  node
  3153.  
  3154. must  be  able  to  discard  that  message  (with  an appropriate
  3155.  
  3156. negative acknowledgment) if there is  no  effective  mapping  for
  3157.  
  3158. that  logical  address.   The  source  host  must also be able to
  3159.  
  3160. indicate its own logical address, if it wants to make this  known
  3161.  
  3162. to the destination host.  (Since the source host may have several
  3163.  
  3164. logical addresses, it must explicitly choose one to be carried to
  3165.  
  3166. the  destination  host.)  Again,  the source node must be able to
  3167.  
  3168. negatively acknowledge  and  then  discard  the  message  if  the
  3169.  
  3170. mapping  from  that logical address to the source host's physical
  3171.  
  3172. address is not effective.  Alternatively, one may want to  return
  3173.  
  3174. this  sort  of negative acknowledgment only if the source logical
  3175.  
  3176. address mapping is unauthorized, and allow the message to be sent
  3177.  
  3178. if the mapping is authorized but ineffective.  If this is done, a
  3179.  
  3180. particular "logical host" may be allowed to send data, but not to
  3181.  
  3182. receive it.
  3183.  
  3184.  
  3185.  
  3186.  
  3187.                               -53-
  3188.  
  3189.  
  3190. IEN-183                              Bolt Beranek and Newman Inc.
  3191.                                                     Eric C. Rosen
  3192.  
  3193.  
  3194.  
  3195.         When a logically addressed message  is  passed  from  the
  3196.  
  3197. destination node to the destination host, the message header must
  3198.  
  3199. contain the destination logical address  (since  the  destination
  3200.  
  3201. host  may  have  more  than  one logical address), and the source
  3202.  
  3203. logical address, if any.   This  implies,  of  course,  that  the
  3204.  
  3205. source and destination logical addresses of datagram packets must
  3206.  
  3207. be carried across the network in the packet header.  (For virtual
  3208.  
  3209. circuit  packets,  the  logical  addresses  can  be  kept  in the
  3210.  
  3211. connection blocks in  the  source  and  destination  nodes.)  The
  3212.  
  3213. internal  packet  header must also carry the physical destination
  3214.  
  3215. node number (for addressing at tandem nodes),  and  the  physical
  3216.  
  3217. source  node number (so that DNA messages can be returned without
  3218.  
  3219. having to rely on  the  integrity  of  the  translation  tables).
  3220.  
  3221. However,  these  physical  node numbers need not be passed to the
  3222.  
  3223. destination host.  Note that there is no need  for  the  internal
  3224.  
  3225. packet  header to carry source or destination port numbers, since
  3226.  
  3227. these are usually determined by the combination of physical  node
  3228.  
  3229. number  and  logical address.  In the case where a host is multi-
  3230.  
  3231. homed to a single node, the port numbers are not  so  determined,
  3232.  
  3233. but  the destination node can make a choice of ports "at the last
  3234.  
  3235. minute," either by choosing according  to  one  of  the  criteria
  3236.  
  3237. already  discussed,  or  by  choosing  the port with the shortest
  3238.  
  3239. queue.
  3240.  
  3241.  
  3242.  
  3243.  
  3244.  
  3245.                               -54-
  3246.  
  3247.  
  3248. IEN-183                              Bolt Beranek and Newman Inc.
  3249.                                                     Eric C. Rosen
  3250.  
  3251.  
  3252.  
  3253. [1]  E.C. Rosen, J.G. Herman, I. Richer, J.M. McQuillan, ARPANET
  3254. Routing Algorithm  Improvements  --  Third  Semiannual  Technical
  3255. Report, BBN Report No. 4088, April 1979, chapter 2.
  3256.  
  3257. [2]  J.M. McQuillan,  I.  Richer,  E.C.  Rosen,  D.P.  Bertsekas,
  3258. ARPANET  Routing  Algorithm  Improvements  --  Second  Semiannual
  3259. Report, BBN Report No. 3940, October 1978, chapter 4.
  3260.  
  3261. [3]  E.C. Rosen, "The Updating Protocol of ARPANET's New  Routing
  3262. Algorithm," Computer Networks, February 1980, Volume 4, p. 11.
  3263.  
  3264.  
  3265.  
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.                               -55-
  3304.  
  3305.  
  3306.